From dfa87e44b1d15287e9474ba2ebd96f6372abc661 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Fri, 19 Apr 2024 13:25:54 +0100 Subject: [PATCH 01/24] Added some data validators --- README.md | 3 +- poetry.lock | 412 +++++++++++++++++++++++++++ pyproject.toml | 2 +- src/data_generator/__init__.py | 0 src/data_generator/data_generator.py | 0 src/data_generator/fhir_data.py | 57 ++++ tests/test_data_generator.py | 14 + 7 files changed, 486 insertions(+), 2 deletions(-) create mode 100644 poetry.lock create mode 100644 src/data_generator/__init__.py create mode 100644 src/data_generator/data_generator.py create mode 100644 src/data_generator/fhir_data.py create mode 100644 tests/test_data_generator.py diff --git a/README.md b/README.md index b1ee71d..7c1c373 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ ![GitHub License](https://img.shields.io/github/license/:user/:repo) -# DoppelData +# HealthChain A package to help Healthtech developers generate synthetic data in the Fhir data standard. ## Quickstart You can install this package by running: + diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..4d1edd9 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,412 @@ +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." +optional = false +python-versions = "*" +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] + +[package.dependencies] +python-dateutil = ">=2.8.1" + +[package.extras] +dev = ["flake8", "markdown", "twine", "wheel"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.3" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markdown" +version = "3.6" +description = "Python implementation of John Gruber's Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"}, + {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"}, +] + +[package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] +testing = ["coverage", "pyyaml"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." +optional = false +python-versions = ">=3.6" +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] + +[[package]] +name = "mkdocs" +version = "1.5.3" +description = "Project documentation with Markdown." +optional = false +python-versions = ">=3.7" +files = [ + {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"}, + {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} +ghp-import = ">=1.0" +jinja2 = ">=2.11.1" +markdown = ">=3.2.1" +markupsafe = ">=2.0.1" +mergedeep = ">=1.3.4" +packaging = ">=20.5" +pathspec = ">=0.11.1" +platformdirs = ">=2.2.0" +pyyaml = ">=5.1" +pyyaml-env-tag = ">=0.1" +watchdog = ">=2.0" + +[package.extras] +i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] + +[[package]] +name = "packaging" +version = "24.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] + +[[package]] +name = "pluggy" +version = "1.4.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pytest" +version = "8.1.1" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.4,<2.0" + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] + +[package.dependencies] +pyyaml = "*" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "watchdog" +version = "4.0.0" +description = "Filesystem events monitoring" +optional = false +python-versions = ">=3.8" +files = [ + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"}, + {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"}, + {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"}, + {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"}, + {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"}, + {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"}, + {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"}, + {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"}, +] + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "35d94ccf245203340acb12038e5dec577e25ffbc71da5e36c9d7026225130cc5" diff --git a/pyproject.toml b/pyproject.toml index b52b114..31d4967 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "doppeldata" +name = "healthchainx" version = "0.1.0" description = "" authors = ["Adam Kells "] diff --git a/src/data_generator/__init__.py b/src/data_generator/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/data_generator/data_generator.py b/src/data_generator/data_generator.py new file mode 100644 index 0000000..e69de29 diff --git a/src/data_generator/fhir_data.py b/src/data_generator/fhir_data.py new file mode 100644 index 0000000..fbc347f --- /dev/null +++ b/src/data_generator/fhir_data.py @@ -0,0 +1,57 @@ +from pydantic import BaseModel, Field, validator +from typing import Optional, List, Any +from datetime import datetime +from faker import Faker + +fake = Faker() + +class HumanName(BaseModel): + family: str = Field(default_factory=lambda: fake.last_name()) + given: List[str] = Field(default_factory=lambda: [fake.first_name()]) + prefix: List[str] = Field(default_factory=lambda: [fake.prefix()]) + suffix: List[str] = Field(default_factory=lambda: [fake.suffix()]) + +class ContactPoint(BaseModel): + system: str = Field(default_factory=lambda: fake.random_element(elements=("phone", "email"))) + value: str = Field(default_factory=lambda system=system: fake.phone_number() if system == "phone" else fake.email()) + use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) + rank: int = Field(default_factory=lambda: fake.random_int(min=1, max=3)) + +class Address(BaseModel): + use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) + type: str = Field(default_factory=lambda: fake.random_element(elements=("postal", "physical"))) + text: str = Field(default_factory=lambda: fake.address()) + line: List[str] = Field(default_factory=lambda: [fake.street_address()]) + city: str = Field(default_factory=lambda: fake.city()) + district: str = Field(default_factory=lambda: fake.state()) + state: str = Field(default_factory=lambda: fake.state()) + postalCode: str = Field(default_factory=lambda: fake.zipcode()) + country: str = Field(default_factory=lambda: fake.country()) + +class Patient(BaseModel): + id: str = Field(default_factory=lambda: fake.uuid4()) + active: bool = Field(default_factory=lambda: fake.boolean()) + name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) + telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) + gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) + birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=0, maximum_age=100)) + address: List[Address] = Field(default_factory=lambda: [Address()]) + +class Practitioner(BaseModel): + id: str = Field(default_factory=lambda: fake.uuid4()) + active: bool = Field(default_factory=lambda: fake.boolean()) + name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) + telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) + address: List[Address] = Field(default_factory=lambda: [Address()]) + gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) + birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=25, maximum_age=70)) + +class Observation(BaseModel): + id: str = Field(default_factory=lambda: fake.uuid4()) + status: str = Field(default_factory=lambda: fake.random_element(elements=("registered", "preliminary", "final"))) + effectiveDateTime: datetime = Field(default_factory=lambda: fake.past_date()) + issued: datetime = Field(default_factory=lambda: fake.date_time_this_month()) + +# Example instantiation +patient = Patient() +print(patient) diff --git a/tests/test_data_generator.py b/tests/test_data_generator.py new file mode 100644 index 0000000..f930346 --- /dev/null +++ b/tests/test_data_generator.py @@ -0,0 +1,14 @@ +import pytest +from healthchain.doppeldata import data_generator as dg + +# Define your test functions here +def test_doppeldata_integrate(): + data = dg.generate_data() + assert isinstance(data, dict) + + + + +# Run the tests +if __name__ == "__main__": + pytest.main() From 2acb769e60744a2ae8fab9de544d150a31ac295c Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Mon, 22 Apr 2024 16:00:12 +0100 Subject: [PATCH 02/24] Added data generator --- src/data_generator/data_generator.py | 39 +++++ src/data_generator/fhir_data.py | 217 +++++++++++++++++++++------ tests/test_data_generator.py | 3 + 3 files changed, 216 insertions(+), 43 deletions(-) diff --git a/src/data_generator/data_generator.py b/src/data_generator/data_generator.py index e69de29..a5adf73 100644 --- a/src/data_generator/data_generator.py +++ b/src/data_generator/data_generator.py @@ -0,0 +1,39 @@ + +from abc import ABC, abstractmethod +from pydantic import BaseModel +from faker import Faker +from src.data_generator.fhir_data import Patient, HumanName +import random + +class AbstractDataGenerator(ABC): + @abstractmethod + def generate(self) -> BaseModel: + """Generate an instance of a Pydantic model.""" + pass + + +faker = Faker() + +class HumanNameGenerator(AbstractDataGenerator): + def generate(self) -> HumanName: + return HumanName( + family=faker.last_name(), + given=[faker.first_name()], + prefix=[faker.prefix()], + suffix=[faker.suffix()] ## We probably don't want to generate suffixes every time + ) + +class PatientGenerator(AbstractDataGenerator): + def generate(self) -> Patient: + return Patient( + id=faker.uuid4(), + active=faker.boolean(), + name=[HumanNameGenerator().generate()], + telecom=[{ + "system": faker.random_element(elements=("phone", "email")), + "value": faker.phone_number() if system == "phone" else faker.email(), + "use": faker.random_element(elements=("home", "work", "temp")), + "rank": faker.random_int(min=1, max=3) + }], + gender=faker.random_element(elements=(" + diff --git a/src/data_generator/fhir_data.py b/src/data_generator/fhir_data.py index fbc347f..22c51b4 100644 --- a/src/data_generator/fhir_data.py +++ b/src/data_generator/fhir_data.py @@ -1,57 +1,188 @@ from pydantic import BaseModel, Field, validator -from typing import Optional, List, Any +from typing import Optional, List, Any, Literal from datetime import datetime from faker import Faker +from pandas import Period fake = Faker() +class BaseLiterals: + gender = Literal['male', 'female', 'other', 'unknown'] + + +class Coding(BaseModel): + system: str = Field(default=None, alias='system', description='Identity of the terminology system') + version: str = Field(default=None, alias='version', description='Version of the system - if relevant') + code: str = Field(default=None, alias='code', description='Symbol in syntax defined by the system') + display: str = Field(default=None, alias='display', description='Representation defined by the system') + userSelected: bool = Field(default=None, alias='userSelected', description='If this coding was chosen directly by the user') + + +class CodeableConcept(BaseModel): + coding: List[Coding] = Field(default=None, alias='coding', description='Code defined by a terminology system') + text: str = Field(default=None, alias='text', description='Plain text representation of the concept') + + +class Reference(BaseModel): + reference: str = Field(default=None, alias='reference', description='Relative, internal or absolute URL reference') + type: str = Field(default=None, alias='type', description='Type the reference refers to (e.g. "Patient")') + identifier: "Identifier" = Field(default=None, alias='identifier', description='Logical reference, when literal reference is not known') + + +class Identifier(BaseModel): + use: str = Field(default=None, alias='use', description='usual | official | temp | secondary | old (If known)') + type: CodeableConcept = Field(default=None, alias='type', description='Description of identifier') + system: str = Field(default=None, alias='system', description='The namespace for the identifier value') + value: str = Field(default=None, alias='value', description='The value that is unique') + period: Period = Field(default=None, alias='period', description='Time period when the identifier was valid for use') + assigner: "Reference" = Field(default=None, alias='assigner', description='Organization that issued id (may be just text)') + + +Reference.update_forward_refs() +Identifier.update_forward_refs() + class HumanName(BaseModel): - family: str = Field(default_factory=lambda: fake.last_name()) - given: List[str] = Field(default_factory=lambda: [fake.first_name()]) - prefix: List[str] = Field(default_factory=lambda: [fake.prefix()]) - suffix: List[str] = Field(default_factory=lambda: [fake.suffix()]) + use: str = Field(default=None, alias='use', description='usual | official | temp | nickname | anonymous | old | maiden') + text: str = Field(default=None, alias='text', description='Text representation of the full name') + family: List[str] = Field(default=None, alias='family', description='Family name (often called 'Surname'') + given: List[str] = Field(default=None, alias='given', description='Given names (not always 'first'). Includes middle names') + prefix: List[str] = Field(default=None, alias='prefix', description='Parts that come before the name') + suffix: List[str] = Field(default=None, alias='suffix', description='Parts that come after the name') + period: Period = Field(default=None, alias='period', description='Time period when name was/is in use') + class ContactPoint(BaseModel): - system: str = Field(default_factory=lambda: fake.random_element(elements=("phone", "email"))) - value: str = Field(default_factory=lambda system=system: fake.phone_number() if system == "phone" else fake.email()) - use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) - rank: int = Field(default_factory=lambda: fake.random_int(min=1, max=3)) + system: str = Field(default=None, alias='system', description='phone | fax | email | pager | url | sms | other') + value: str = Field(default=None, alias='value', description='The actual contact point details') + use: str = Field(default=None, alias='use', description='home | work | temp | old | mobile - purpose of this contact point') + rank: int = Field(default=None, alias='rank', description='Specify preferred order of use (1 = highest)') + period: Period = Field(default=None, alias='period', description='Time period when the contact point was/is in use') + + +class Address(BaseModel): + use: str = Field(default=None, alias='use', description='home | work | temp | old - purpose of this address') + type: str = Field(default=None, alias='type', description='postal | physical | both') + text: str = Field(default=None, alias='text', description='Text representation of the address') + line: List[str] = Field(default=None, alias='line', description='Street name, number, direction & P.O. Box etc') + city: str = Field(default=None, alias='city', description='Name of city, town etc.') + district: str = Field(default=None, alias='district', description='District name (aka county)') + state: str = Field(default=None, alias='state', description='Sub-unit of country (abbreviations ok)') + postalCode: str = Field(default=None, alias='postalCode', description='Postal code for area') + country: str = Field(default=None, alias='country', description='Country (can be ISO 3166 3 letter code)') + + +class Attachment(BaseModel): + contentType: str = Field(default=None, alias='contentType', description='Mime type of the content, with charset etc.') + language: str = Field(default=None, alias='language', description='Human language of the content (BCP-47)') + data: str = Field(default=None, alias='data', description='Data inline, base64ed') + url: str = Field(default=None, alias='url', description='Uri where the data can be found') + size: int = Field(default=None, alias='size', description='Number of bytes of content (if url provided)') + hash: str = Field(default=None, alias='hash', description='Hash of the data (sha-1, base64ed)') + title: str = Field(default=None, alias='title', description='Label to display in place of the data') + + +class PatientContact(BaseModel): + relationship: List[CodeableConcept] = Field(default=None, alias='relationship', description='The kind of relationship') + name: HumanName = Field(default=None, alias='name', description='A name associated with the contact person') + telecom: List[ContactPoint] = Field(default=None, alias='telecom', description='A contact detail for the person') + address: Address = Field(default=None, alias='address', description='Address for the contact person') + + +class PatientCommunication(BaseModel): + language: CodeableConcept = Field(default=None, alias='language', description='The language which can be used for communication') + preferred: bool = Field(default=None, alias='preferred', description='Language preference indicator') + + +class PatientLink(BaseModel): + other: Reference = Field(default=None, alias='other', description='The other patient resource that the link refers to') + type: str = Field(default=None, alias='type', description='replaced-by | replaces | refer | seealso - type of link') + + +class Patient(BaseModel): + resource_type: str = Field("Patient", const=True) + identifier: List[Identifier] = Field(default=None, alias="identifier", description="An identifier for this patient") + active: bool = Field(default=None, alias="active", description="Whether this patient's record is in active use") + name: List[HumanName] = Field(default=None, alias="name", description="A name associated with the patient") + telecom: List[ContactPoint] = Field(default=None, alias="telecom", description="A contact detail for the individual") + gender: BaseLiterals.gender = Field(default=None, alias='gender', description='male | female | other | unknown') + birthDate: datetime = Field(default=None, alias='birthDate', description='The date of birth for the individual') + deceased: bool | datetime = Field(default=None, alias='deceased', description='Indicates if the individual is deceased or not') + address: List[Address] = Field(default=None, alias='address', description='Addresses for the individual') + maritalStatus: CodeableConcept = Field(default=None, alias='maritalStatus', description='Marital (civil) status of a patient') + multipleBirth: bool | int = Field(default=None, alias='multipleBirth', description='Whether patient is part of a multiple birth') + photo: List[Attachment] = Field(default=None, alias='photo', description='Image of the patient') + contact: List[PatientContact] = Field(default=None, alias='contact', description='A contact party (e.g. guardian, partner, friend) for the patient') + communication: List[PatientCommunication] = Field(default=None, alias='communication', description='A language which may be used to communicate with the patient about his or her health') + generalPractitioner: List[Reference] = Field(default=None, alias='generalPractitioner', description='Patient\'s nominated care provider') + managingOrganization: Reference = Field(default=None, alias='managingOrganization', description='Organization that is the custodian of the patient record') + link: List[PatientLink] = Field(default=None, alias='link', description='Link to another patient resource that concerns the same actual person') + + + + + + + class Address(BaseModel): - use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) - type: str = Field(default_factory=lambda: fake.random_element(elements=("postal", "physical"))) - text: str = Field(default_factory=lambda: fake.address()) - line: List[str] = Field(default_factory=lambda: [fake.street_address()]) city: str = Field(default_factory=lambda: fake.city()) - district: str = Field(default_factory=lambda: fake.state()) - state: str = Field(default_factory=lambda: fake.state()) - postalCode: str = Field(default_factory=lambda: fake.zipcode()) country: str = Field(default_factory=lambda: fake.country()) + + # Placeholder for actual data retrieval logic + @validator('city', pre=True, always=True) + def adjust_city_to_country(cls, v, values, **kwargs): + country = values.get('country') + # Here you would adjust 'v' to be a city from 'country' + # This is a placeholder logic. + return v + + +class HumanName(BaseModel): + family: str = Field(default_factory=lambda: fake.last_name()) + given: List[str] = Field(default_factory=lambda: [fake.first_name()]) + prefix: List[str] = Field(default_factory=lambda: [fake.prefix()]) + suffix: List[str] = Field(default_factory=lambda: [fake.suffix()]) + + + +# class ContactPoint(BaseModel): +# system: str = Field(default_factory=lambda: fake.random_element(elements=("phone", "email"))) +# value: str = Field(default_factory=lambda system=system: fake.phone_number() if system == "phone" else fake.email()) +# use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) +# rank: int = Field(default_factory=lambda: fake.random_int(min=1, max=3)) + +# class Address(BaseModel): +# use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) +# type: str = Field(default_factory=lambda: fake.random_element(elements=("postal", "physical"))) +# text: str = Field(default_factory=lambda: fake.address()) +# line: List[str] = Field(default_factory=lambda: [fake.street_address()]) +# city: str = Field(default_factory=lambda: fake.city()) +# district: str = Field(default_factory=lambda: fake.state()) +# state: str = Field(default_factory=lambda: fake.state()) +# postalCode: str = Field(default_factory=lambda: fake.zipcode()) +# country: str = Field(default_factory=lambda: fake.country()) + +# class Patient(BaseModel): +# id: str = Field(default_factory=lambda: fake.uuid4()) +# active: bool = Field(default_factory=lambda: fake.boolean()) +# name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) +# telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) +# gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) +# birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=0, maximum_age=100)) +# address: List[Address] = Field(default_factory=lambda: [Address()]) + +# class Practitioner(BaseModel): +# id: str = Field(default_factory=lambda: fake.uuid4()) +# active: bool = Field(default_factory=lambda: fake.boolean()) +# name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) +# telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) +# address: List[Address] = Field(default_factory=lambda: [Address()]) +# gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) +# birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=25, maximum_age=70)) + +# class Observation(BaseModel): +# id: str = Field(default_factory=lambda: fake.uuid4()) +# status: str = Field(default_factory=lambda: fake.random_element(elements=("registered", "preliminary", "final"))) +# effectiveDateTime: datetime = Field(default_factory=lambda: fake.past_date()) +# issued: datetime = Field(default_factory=lambda: fake.date_time_this_month()) -class Patient(BaseModel): - id: str = Field(default_factory=lambda: fake.uuid4()) - active: bool = Field(default_factory=lambda: fake.boolean()) - name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) - telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) - gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) - birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=0, maximum_age=100)) - address: List[Address] = Field(default_factory=lambda: [Address()]) - -class Practitioner(BaseModel): - id: str = Field(default_factory=lambda: fake.uuid4()) - active: bool = Field(default_factory=lambda: fake.boolean()) - name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) - telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) - address: List[Address] = Field(default_factory=lambda: [Address()]) - gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) - birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=25, maximum_age=70)) - -class Observation(BaseModel): - id: str = Field(default_factory=lambda: fake.uuid4()) - status: str = Field(default_factory=lambda: fake.random_element(elements=("registered", "preliminary", "final"))) - effectiveDateTime: datetime = Field(default_factory=lambda: fake.past_date()) - issued: datetime = Field(default_factory=lambda: fake.date_time_this_month()) - -# Example instantiation -patient = Patient() -print(patient) diff --git a/tests/test_data_generator.py b/tests/test_data_generator.py index f930346..b6a0c89 100644 --- a/tests/test_data_generator.py +++ b/tests/test_data_generator.py @@ -8,6 +8,9 @@ def test_doppeldata_integrate(): +# The data generator and the data model are tightly coupled. +# We need to write a test that will fail if one is changed and the other is not. + # Run the tests if __name__ == "__main__": From f0037195d8c2b82927f4a35d8cb2393f9016cbea Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Thu, 25 Apr 2024 17:01:41 +0100 Subject: [PATCH 03/24] adding pydantic fhir data classes --- poetry.lock | 134 ++++++++++++++++++++++- pyproject.toml | 1 + src/data_generator/data_generator.py | 7 +- src/data_generator/pydantic_generator.py | 86 +++++++++++++++ tests/test_data_generator.py | 17 --- 5 files changed, 225 insertions(+), 20 deletions(-) create mode 100644 src/data_generator/pydantic_generator.py delete mode 100644 tests/test_data_generator.py diff --git a/poetry.lock b/poetry.lock index 4d1edd9..ffb35e9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,5 +1,16 @@ # This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +[[package]] +name = "annotated-types" +version = "0.6.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, +] + [[package]] name = "click" version = "8.1.7" @@ -247,6 +258,116 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "pydantic" +version = "2.7.1" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, + {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +pydantic-core = "2.18.2" +typing-extensions = ">=4.6.1" + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.18.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, + {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, + {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, + {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, + {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, + {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, + {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, + {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, + {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, + {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, + {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, + {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, + {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, + {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + [[package]] name = "pytest" version = "8.1.1" @@ -365,6 +486,17 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "typing-extensions" +version = "4.11.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, +] + [[package]] name = "watchdog" version = "4.0.0" @@ -409,4 +541,4 @@ watchmedo = ["PyYAML (>=3.10)"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "35d94ccf245203340acb12038e5dec577e25ffbc71da5e36c9d7026225130cc5" +content-hash = "59035345dfa1390210a568162c3d71526db5846c729364360357ac40963e550c" diff --git a/pyproject.toml b/pyproject.toml index 31d4967..88ced83 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,6 +9,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.11" mkdocs = "^1.5.3" +pydantic = "^2.7.1" [tool.poetry.group.dev.dependencies] pytest = "^8.1.1" diff --git a/src/data_generator/data_generator.py b/src/data_generator/data_generator.py index a5adf73..f6b1446 100644 --- a/src/data_generator/data_generator.py +++ b/src/data_generator/data_generator.py @@ -3,6 +3,7 @@ from pydantic import BaseModel from faker import Faker from src.data_generator.fhir_data import Patient, HumanName +from src.fhir_data import BaseLiterals import random class AbstractDataGenerator(ABC): @@ -20,7 +21,7 @@ def generate(self) -> HumanName: family=faker.last_name(), given=[faker.first_name()], prefix=[faker.prefix()], - suffix=[faker.suffix()] ## We probably don't want to generate suffixes every time + suffix=[faker.suffix() if random.random() < 0.001 else None] ) class PatientGenerator(AbstractDataGenerator): @@ -35,5 +36,7 @@ def generate(self) -> Patient: "use": faker.random_element(elements=("home", "work", "temp")), "rank": faker.random_int(min=1, max=3) }], - gender=faker.random_element(elements=(" + gender=faker.random_element(elements=(BaseLiterals.gender)), + ) + diff --git a/src/data_generator/pydantic_generator.py b/src/data_generator/pydantic_generator.py new file mode 100644 index 0000000..dc425e5 --- /dev/null +++ b/src/data_generator/pydantic_generator.py @@ -0,0 +1,86 @@ +from pydantic import BaseModel, Field, conlist +import time + +import json + +# Specify the path to your JSON file + +def load_data(file_path): + with open(file_path, 'r') as file: + data = json.load(file) + return data + + +def write_model(f, name, model_info): + enum_items = {} + if 'oneOf' in model_info: + pass + elif 'properties' in model_info: + f.write(f'class {name}(BaseModel):\n') + props = model_info['properties'] + for prop_name, prop_info in props.items(): + if prop_name[0] == '_': + pass + else: + prop_description = prop_info.get('description', '').replace('"', '').split('\n')[0].split('\r')[0] + if '$ref' in prop_info: + # Handle reference to another model + ref_model = prop_info['$ref'].split('/')[-1] + f.write(f' {prop_name}_field: {ref_model} = Field(default=None, alias="{prop_name}", description="{prop_description}")\n') + elif 'type' in prop_info and 'items' in prop_info: + # Handle list of other models + if '$ref' in prop_info['items']: + item_model = prop_info['items']['$ref'].split('/')[-1] + f.write(f' {prop_name}_field: list[{item_model}] = Field(default_factory=None, alias="{prop_name}", description="{prop_description}")\n') + elif 'enum' in prop_info['items']: + enum_items[prop_name] = prop_info['items']['enum'] + elif 'pattern' in model_info: + pydantic_type = None + pattern = model_info.get('pattern') + description = model_info.get('description').replace('"', '').split('\n')[0].split('\r')[0] + field_type = model_info.get('type') + if field_type == 'string': + pydantic_type = 'str' + elif field_type == 'integer': + pydantic_type = 'int' + elif field_type == 'number': + pydantic_type = 'float' + else: + pydantic_type = 'str' + f.write(f'class {name.lower()}(BaseModel):\n') + f.write(f' {name}: {pydantic_type} = Field(pattern=r\'{pattern}\')\n\n') + f.write(f' class Config:\n') + f.write(f' schema_extra = {{\n') + f.write(f' "description": "{description}"\n') + f.write(f' }}\n\n') + elif 'description' in model_info and 'type' in model_info: + pass + else: + pass + + f.write('\n') + + return enum_items + + +def generate_pydantic_models_with_complex_fields(schema, output_file): + enum_dicts = {} + with open(output_file, 'w') as f: + f.write('from __future__ import annotations\n') + f.write('from pydantic import BaseModel, Field, conlist, condecimal, constr, conint, confloat, typing\n\n') + + for model_name, model_info in schema.items(): + if model_name != 'Base': + enum_items = write_model(f, model_name, model_info) + enum_dicts.update(enum_items) + + + + +if __name__ == '__main__': + data = load_data('../data/fhir.schema.json') + definitions = data['definitions'] + generate_pydantic_models_with_complex_fields(definitions, 'pydantic_complex_field_models_vsc.py') + print('Pydantic models generated successfully!') + + diff --git a/tests/test_data_generator.py b/tests/test_data_generator.py deleted file mode 100644 index b6a0c89..0000000 --- a/tests/test_data_generator.py +++ /dev/null @@ -1,17 +0,0 @@ -import pytest -from healthchain.doppeldata import data_generator as dg - -# Define your test functions here -def test_doppeldata_integrate(): - data = dg.generate_data() - assert isinstance(data, dict) - - - -# The data generator and the data model are tightly coupled. -# We need to write a test that will fail if one is changed and the other is not. - - -# Run the tests -if __name__ == "__main__": - pytest.main() From 9f59a910a15174c8991ff8d7671e682a4c8dde22 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Mon, 29 Apr 2024 15:05:22 +0100 Subject: [PATCH 04/24] Working patient generator --- src/data_generator/base_generators.py | 140 + src/data_generator/fhir_data.py | 188 - src/data_generator/patient_generator.py | 96 + src/data_generator/pydantic_generator.py | 141 +- src/pydantic_models.py | 12094 ++++++++++++++++++ tests/__init__.py | 0 tests/test_pydantic_base_generators.py | 0 tests/test_pydantic_complex_field_models.py | 37 + tests/test_pydantic_patient_generators.py | 27 + 9 files changed, 12479 insertions(+), 244 deletions(-) create mode 100644 src/data_generator/base_generators.py delete mode 100644 src/data_generator/fhir_data.py create mode 100644 src/data_generator/patient_generator.py create mode 100644 src/pydantic_models.py create mode 100644 tests/__init__.py create mode 100644 tests/test_pydantic_base_generators.py create mode 100644 tests/test_pydantic_complex_field_models.py create mode 100644 tests/test_pydantic_patient_generators.py diff --git a/src/data_generator/base_generators.py b/src/data_generator/base_generators.py new file mode 100644 index 0000000..c86f0e3 --- /dev/null +++ b/src/data_generator/base_generators.py @@ -0,0 +1,140 @@ +# generators.py + +import random +import string + +from src.pydantic_models import booleanModel, canonicalModel, codeModel, dateModel, dateTimeModel, decimalModel, idModel, instantModel, integerModel, markdownModel, positiveIntModel, stringModel, timeModel, unsignedIntModel, uriModel, urlModel, uuidModel + +from faker import Faker +faker = Faker() + +generator_registry = {} + +def register_generator(cls): + generator_registry[cls.__name__] = cls + return cls + +@register_generator +class BaseGenerator: + @staticmethod + def generate(): + raise NotImplementedError("Each generator must implement a 'generate' method.") + +@register_generator +class booleanGenerator(BaseGenerator): + @staticmethod + def generate(): + return booleanModel(boolean=random.choice(['true', 'false'])) + + +@register_generator +class canonicalGenerator(BaseGenerator): + @staticmethod + def generate(): + return canonicalModel(canonical=f"https://example/{faker.uri_path()}") + + +@register_generator +class codeGenerator(BaseGenerator): + # TODO: Codes can technically have whitespace but here I've left it out for simplicity + @staticmethod + def generate(): + return codeModel(code=''.join(random.choices(string.ascii_uppercase + string.digits, k=6))) + + +@register_generator +class dateGenerator(BaseGenerator): + @staticmethod + def generate(): + return dateModel(date=faker.date()) + + +@register_generator +class dateTimeGenerator(BaseGenerator): + @staticmethod + def generate(): + return dateTimeModel(dateTime=faker.date_time().isoformat()) + + +@register_generator +class decimalGenerator(BaseGenerator): + @staticmethod + def generate(): + return decimalModel(decimal=faker.random_number()) + + +@register_generator +class idGenerator(BaseGenerator): + @staticmethod + def generate(): + return idModel(id=faker.uuid4()) + + +@register_generator +class instantGenerator(BaseGenerator): + @staticmethod + def generate(): + return instantModel(instant=faker.date_time().isoformat()) + + +@register_generator +class integerGenerator(BaseGenerator): + @staticmethod + def generate(): + return integerModel(integer=faker.random_int()) + + +@register_generator +class markdownGenerator(BaseGenerator): + @staticmethod + def generate(): + return markdownModel(markdown=faker.text()) + + +@register_generator +class positiveIntGenerator(BaseGenerator): + @staticmethod + def generate(): + return positiveIntModel(positiveInt=faker.random_int(min=1)) + + +@register_generator +class stringGenerator(BaseGenerator): + @staticmethod + def generate(): + return stringModel(string=faker.word()) + + +@register_generator +class timeGenerator(BaseGenerator): + @staticmethod + def generate(): + return timeModel(time=faker.time()) + + +@register_generator +class unsignedIntGenerator(BaseGenerator): + @staticmethod + def generate(): + return unsignedIntModel(unsignedInt=faker.random_int(min=0)) + + +@register_generator +class uriGenerator(BaseGenerator): + @staticmethod + def generate(): + return uriModel(uri=f"https://example/{faker.uri_path()}") + + +@register_generator +class urlGenerator(BaseGenerator): + @staticmethod + def generate(): + return urlModel(url=f"https://example/{faker.uri_path()}") + + +@register_generator +class uuidGenerator(BaseGenerator): + @staticmethod + def generate(): + return uuidModel(uuid=faker.uuid4()) \ No newline at end of file diff --git a/src/data_generator/fhir_data.py b/src/data_generator/fhir_data.py deleted file mode 100644 index 22c51b4..0000000 --- a/src/data_generator/fhir_data.py +++ /dev/null @@ -1,188 +0,0 @@ -from pydantic import BaseModel, Field, validator -from typing import Optional, List, Any, Literal -from datetime import datetime -from faker import Faker -from pandas import Period - -fake = Faker() - -class BaseLiterals: - gender = Literal['male', 'female', 'other', 'unknown'] - - -class Coding(BaseModel): - system: str = Field(default=None, alias='system', description='Identity of the terminology system') - version: str = Field(default=None, alias='version', description='Version of the system - if relevant') - code: str = Field(default=None, alias='code', description='Symbol in syntax defined by the system') - display: str = Field(default=None, alias='display', description='Representation defined by the system') - userSelected: bool = Field(default=None, alias='userSelected', description='If this coding was chosen directly by the user') - - -class CodeableConcept(BaseModel): - coding: List[Coding] = Field(default=None, alias='coding', description='Code defined by a terminology system') - text: str = Field(default=None, alias='text', description='Plain text representation of the concept') - - -class Reference(BaseModel): - reference: str = Field(default=None, alias='reference', description='Relative, internal or absolute URL reference') - type: str = Field(default=None, alias='type', description='Type the reference refers to (e.g. "Patient")') - identifier: "Identifier" = Field(default=None, alias='identifier', description='Logical reference, when literal reference is not known') - - -class Identifier(BaseModel): - use: str = Field(default=None, alias='use', description='usual | official | temp | secondary | old (If known)') - type: CodeableConcept = Field(default=None, alias='type', description='Description of identifier') - system: str = Field(default=None, alias='system', description='The namespace for the identifier value') - value: str = Field(default=None, alias='value', description='The value that is unique') - period: Period = Field(default=None, alias='period', description='Time period when the identifier was valid for use') - assigner: "Reference" = Field(default=None, alias='assigner', description='Organization that issued id (may be just text)') - - -Reference.update_forward_refs() -Identifier.update_forward_refs() - -class HumanName(BaseModel): - use: str = Field(default=None, alias='use', description='usual | official | temp | nickname | anonymous | old | maiden') - text: str = Field(default=None, alias='text', description='Text representation of the full name') - family: List[str] = Field(default=None, alias='family', description='Family name (often called 'Surname'') - given: List[str] = Field(default=None, alias='given', description='Given names (not always 'first'). Includes middle names') - prefix: List[str] = Field(default=None, alias='prefix', description='Parts that come before the name') - suffix: List[str] = Field(default=None, alias='suffix', description='Parts that come after the name') - period: Period = Field(default=None, alias='period', description='Time period when name was/is in use') - - -class ContactPoint(BaseModel): - system: str = Field(default=None, alias='system', description='phone | fax | email | pager | url | sms | other') - value: str = Field(default=None, alias='value', description='The actual contact point details') - use: str = Field(default=None, alias='use', description='home | work | temp | old | mobile - purpose of this contact point') - rank: int = Field(default=None, alias='rank', description='Specify preferred order of use (1 = highest)') - period: Period = Field(default=None, alias='period', description='Time period when the contact point was/is in use') - - -class Address(BaseModel): - use: str = Field(default=None, alias='use', description='home | work | temp | old - purpose of this address') - type: str = Field(default=None, alias='type', description='postal | physical | both') - text: str = Field(default=None, alias='text', description='Text representation of the address') - line: List[str] = Field(default=None, alias='line', description='Street name, number, direction & P.O. Box etc') - city: str = Field(default=None, alias='city', description='Name of city, town etc.') - district: str = Field(default=None, alias='district', description='District name (aka county)') - state: str = Field(default=None, alias='state', description='Sub-unit of country (abbreviations ok)') - postalCode: str = Field(default=None, alias='postalCode', description='Postal code for area') - country: str = Field(default=None, alias='country', description='Country (can be ISO 3166 3 letter code)') - - -class Attachment(BaseModel): - contentType: str = Field(default=None, alias='contentType', description='Mime type of the content, with charset etc.') - language: str = Field(default=None, alias='language', description='Human language of the content (BCP-47)') - data: str = Field(default=None, alias='data', description='Data inline, base64ed') - url: str = Field(default=None, alias='url', description='Uri where the data can be found') - size: int = Field(default=None, alias='size', description='Number of bytes of content (if url provided)') - hash: str = Field(default=None, alias='hash', description='Hash of the data (sha-1, base64ed)') - title: str = Field(default=None, alias='title', description='Label to display in place of the data') - - -class PatientContact(BaseModel): - relationship: List[CodeableConcept] = Field(default=None, alias='relationship', description='The kind of relationship') - name: HumanName = Field(default=None, alias='name', description='A name associated with the contact person') - telecom: List[ContactPoint] = Field(default=None, alias='telecom', description='A contact detail for the person') - address: Address = Field(default=None, alias='address', description='Address for the contact person') - - -class PatientCommunication(BaseModel): - language: CodeableConcept = Field(default=None, alias='language', description='The language which can be used for communication') - preferred: bool = Field(default=None, alias='preferred', description='Language preference indicator') - - -class PatientLink(BaseModel): - other: Reference = Field(default=None, alias='other', description='The other patient resource that the link refers to') - type: str = Field(default=None, alias='type', description='replaced-by | replaces | refer | seealso - type of link') - - -class Patient(BaseModel): - resource_type: str = Field("Patient", const=True) - identifier: List[Identifier] = Field(default=None, alias="identifier", description="An identifier for this patient") - active: bool = Field(default=None, alias="active", description="Whether this patient's record is in active use") - name: List[HumanName] = Field(default=None, alias="name", description="A name associated with the patient") - telecom: List[ContactPoint] = Field(default=None, alias="telecom", description="A contact detail for the individual") - gender: BaseLiterals.gender = Field(default=None, alias='gender', description='male | female | other | unknown') - birthDate: datetime = Field(default=None, alias='birthDate', description='The date of birth for the individual') - deceased: bool | datetime = Field(default=None, alias='deceased', description='Indicates if the individual is deceased or not') - address: List[Address] = Field(default=None, alias='address', description='Addresses for the individual') - maritalStatus: CodeableConcept = Field(default=None, alias='maritalStatus', description='Marital (civil) status of a patient') - multipleBirth: bool | int = Field(default=None, alias='multipleBirth', description='Whether patient is part of a multiple birth') - photo: List[Attachment] = Field(default=None, alias='photo', description='Image of the patient') - contact: List[PatientContact] = Field(default=None, alias='contact', description='A contact party (e.g. guardian, partner, friend) for the patient') - communication: List[PatientCommunication] = Field(default=None, alias='communication', description='A language which may be used to communicate with the patient about his or her health') - generalPractitioner: List[Reference] = Field(default=None, alias='generalPractitioner', description='Patient\'s nominated care provider') - managingOrganization: Reference = Field(default=None, alias='managingOrganization', description='Organization that is the custodian of the patient record') - link: List[PatientLink] = Field(default=None, alias='link', description='Link to another patient resource that concerns the same actual person') - - - - - - - - -class Address(BaseModel): - city: str = Field(default_factory=lambda: fake.city()) - country: str = Field(default_factory=lambda: fake.country()) - - # Placeholder for actual data retrieval logic - @validator('city', pre=True, always=True) - def adjust_city_to_country(cls, v, values, **kwargs): - country = values.get('country') - # Here you would adjust 'v' to be a city from 'country' - # This is a placeholder logic. - return v - - -class HumanName(BaseModel): - family: str = Field(default_factory=lambda: fake.last_name()) - given: List[str] = Field(default_factory=lambda: [fake.first_name()]) - prefix: List[str] = Field(default_factory=lambda: [fake.prefix()]) - suffix: List[str] = Field(default_factory=lambda: [fake.suffix()]) - - - -# class ContactPoint(BaseModel): -# system: str = Field(default_factory=lambda: fake.random_element(elements=("phone", "email"))) -# value: str = Field(default_factory=lambda system=system: fake.phone_number() if system == "phone" else fake.email()) -# use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) -# rank: int = Field(default_factory=lambda: fake.random_int(min=1, max=3)) - -# class Address(BaseModel): -# use: str = Field(default_factory=lambda: fake.random_element(elements=("home", "work", "temp"))) -# type: str = Field(default_factory=lambda: fake.random_element(elements=("postal", "physical"))) -# text: str = Field(default_factory=lambda: fake.address()) -# line: List[str] = Field(default_factory=lambda: [fake.street_address()]) -# city: str = Field(default_factory=lambda: fake.city()) -# district: str = Field(default_factory=lambda: fake.state()) -# state: str = Field(default_factory=lambda: fake.state()) -# postalCode: str = Field(default_factory=lambda: fake.zipcode()) -# country: str = Field(default_factory=lambda: fake.country()) - -# class Patient(BaseModel): -# id: str = Field(default_factory=lambda: fake.uuid4()) -# active: bool = Field(default_factory=lambda: fake.boolean()) -# name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) -# telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) -# gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) -# birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=0, maximum_age=100)) -# address: List[Address] = Field(default_factory=lambda: [Address()]) - -# class Practitioner(BaseModel): -# id: str = Field(default_factory=lambda: fake.uuid4()) -# active: bool = Field(default_factory=lambda: fake.boolean()) -# name: List[HumanName] = Field(default_factory=lambda: [HumanName()]) -# telecom: List[ContactPoint] = Field(default_factory=lambda: [ContactPoint()]) -# address: List[Address] = Field(default_factory=lambda: [Address()]) -# gender: str = Field(default_factory=lambda: fake.random_element(elements=("male", "female", "other", "unknown"))) -# birthDate: datetime = Field(default_factory=lambda: fake.date_of_birth(minimum_age=25, maximum_age=70)) - -# class Observation(BaseModel): -# id: str = Field(default_factory=lambda: fake.uuid4()) -# status: str = Field(default_factory=lambda: fake.random_element(elements=("registered", "preliminary", "final"))) -# effectiveDateTime: datetime = Field(default_factory=lambda: fake.past_date()) -# issued: datetime = Field(default_factory=lambda: fake.date_time_this_month()) - diff --git a/src/data_generator/patient_generator.py b/src/data_generator/patient_generator.py new file mode 100644 index 0000000..90ffdaf --- /dev/null +++ b/src/data_generator/patient_generator.py @@ -0,0 +1,96 @@ +from src.data_generator.base_generators import BaseGenerator, generator_registry, register_generator +from src.pydantic_models import PatientModel, HumanNameModel, ContactPointModel, AddressModel, PeriodModel, CodeableConceptModel,\ +stringModel, CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel +from faker import Faker + +import random + +faker = Faker() + + +@register_generator +class PeriodGenerator(BaseGenerator): + @staticmethod + def generate(): + start = faker.date_time() + end = faker.date_time_between(start_date=start).isoformat() + start = start.isoformat() + return PeriodModel( + start=dateTimeModel(dateTime=start), + end=dateTimeModel(dateTime=end), + ) + +@register_generator +class ContactPointGenerator(BaseGenerator): + @staticmethod + def generate(): + return ContactPointModel( + system=faker.random_element(elements=('phone', 'fax', 'email', 'pager', 'url', 'sms', 'other')), + value=stringModel(string=faker.phone_number()), + use=faker.random_element(elements=('home', 'work', 'temp', 'old', 'mobile')), + rank=positiveIntModel(positiveInt=random.randint(1, 10)), + period=generator_registry.get('PeriodGenerator').generate(), + ) + +@register_generator +class AddressGenerator(BaseGenerator): + @staticmethod + def generate(): + return AddressModel( + use=faker.random_element(elements=('home', 'work', 'temp', 'old')), + type=faker.random_element(elements=('postal', 'physical', 'both')), + text=stringModel(string=faker.address()), + line=[stringModel(string=faker.street_address())], + city=stringModel(string=faker.city()), + district=stringModel(string=faker.state()), + state=stringModel(string=faker.state_abbr()), + postalCode=stringModel(string=faker.postcode()), + country=stringModel(string=faker.country_code()), + period=generator_registry.get('PeriodGenerator').generate(), + ) + + +@register_generator +class maritalStatusGenerator(BaseGenerator): + def generate(): + marital_status_dict = { + 'D': 'Divorced', + 'L': 'Legally Separated', + 'M': 'Married', + } + marital_code = faker.random_element(elements=(marital_status_dict.keys())) + return CodeableConceptModel( + coding=[CodingModel( + system=uriModel(uri='http://terminology.hl7.org/CodeSystem/v3-MaritalStatus'), + code=codeModel(code=marital_code), + display=stringModel(string=marital_status_dict.get(marital_code)), + )], + text=stringModel(string=marital_status_dict.get(marital_code)), + ) + +@register_generator +class HumanNameGenerator(BaseGenerator): + @staticmethod + def generate(): + return HumanNameModel( + family=stringModel(string=faker.last_name()), + given=[stringModel(string=faker.first_name())], + prefix=[stringModel(string=faker.prefix())], + suffix=[stringModel(string=faker.suffix())], + ) + +@register_generator +class PatientGenerator(BaseGenerator): + @staticmethod + def generate(): + return PatientModel( + resourceType='Patient', + id=generator_registry.get('idGenerator').generate(), + active=generator_registry.get('booleanGenerator').generate(), + name=[generator_registry.get('HumanNameGenerator').generate()], + telecom=[generator_registry.get('ContactPointGenerator').generate() for _ in range(1)], ## List of length 1 for simplicity + gender=codeModel(code=faker.random_element(elements=('male', 'female', 'other', 'unknown'))), + birthDate=generator_registry.get('dateGenerator').generate(), + address=[generator_registry.get('AddressGenerator').generate() for _ in range(1)], ## List of length 1 for simplicity + maritalStatus=generator_registry.get('maritalStatusGenerator').generate() + ) diff --git a/src/data_generator/pydantic_generator.py b/src/data_generator/pydantic_generator.py index dc425e5..98df0ae 100644 --- a/src/data_generator/pydantic_generator.py +++ b/src/data_generator/pydantic_generator.py @@ -1,39 +1,42 @@ -from pydantic import BaseModel, Field, conlist -import time - +from pydantic import BaseModel, Field +from typing import Any, Dict, List, Optional import json -# Specify the path to your JSON file - -def load_data(file_path): - with open(file_path, 'r') as file: - data = json.load(file) - return data - +# Function to load JSON data from a file +def load_data(file_path: str) -> Dict: + try: + with open(file_path, 'r') as file: + return json.load(file) + except FileNotFoundError: + print("File not found.") + raise + except json.JSONDecodeError: + print("Failed to decode JSON.") + raise -def write_model(f, name, model_info): - enum_items = {} +# Function to write a single Pydantic model based on the schema information +def write_model(file, name: str, model_info: Dict) -> Dict[str, List[str]]: + enum_items: dict = {} + enum_list: list = [] if 'oneOf' in model_info: - pass - elif 'properties' in model_info: - f.write(f'class {name}(BaseModel):\n') - props = model_info['properties'] - for prop_name, prop_info in props.items(): - if prop_name[0] == '_': - pass - else: - prop_description = prop_info.get('description', '').replace('"', '').split('\n')[0].split('\r')[0] - if '$ref' in prop_info: - # Handle reference to another model - ref_model = prop_info['$ref'].split('/')[-1] - f.write(f' {prop_name}_field: {ref_model} = Field(default=None, alias="{prop_name}", description="{prop_description}")\n') - elif 'type' in prop_info and 'items' in prop_info: - # Handle list of other models - if '$ref' in prop_info['items']: - item_model = prop_info['items']['$ref'].split('/')[-1] - f.write(f' {prop_name}_field: list[{item_model}] = Field(default_factory=None, alias="{prop_name}", description="{prop_description}")\n') - elif 'enum' in prop_info['items']: - enum_items[prop_name] = prop_info['items']['enum'] + file.write(f'class {name}Model(Enum):\n') + for item in model_info['oneOf']: + if '$ref' in item: + name = item['$ref'].split('/')[-1] + file.write(f' {name}: stringModel = "{item["$ref"]}"\n') + return enum_items + + if 'properties' in model_info: + file.write(f'class {name}Model(BaseModel):\n') + for prop_name, prop_info in model_info['properties'].items(): + if prop_name.startswith('_'): + continue + prop_description = prop_info.get('description', '').replace('"', '').split('\n')[0].split('\r')[0] + write_field(file, prop_name, prop_info, prop_description, name) + if 'enum' in prop_info: + enum_items = prop_info['enum'] + enum_items = [str(item) for item in enum_items] + enum_list.append({f'{name}_{prop_name}': enum_items}) elif 'pattern' in model_info: pydantic_type = None pattern = model_info.get('pattern') @@ -47,40 +50,66 @@ def write_model(f, name, model_info): pydantic_type = 'float' else: pydantic_type = 'str' - f.write(f'class {name.lower()}(BaseModel):\n') - f.write(f' {name}: {pydantic_type} = Field(pattern=r\'{pattern}\')\n\n') - f.write(f' class Config:\n') - f.write(f' schema_extra = {{\n') - f.write(f' "description": "{description}"\n') - f.write(f' }}\n\n') - elif 'description' in model_info and 'type' in model_info: - pass - else: - pass - - f.write('\n') + file.write(f'class {name}Model(BaseModel):\n') + file.write(f' {name}: {pydantic_type} = Field(pattern=r\'{pattern}\')\n\n') + file.write(f' class Config:\n') + file.write(f' schema_extra = {{\n') + file.write(f' "description": "{description}"\n') + file.write(f' }}\n\n') - return enum_items + file.write('\n') + return enum_list -def generate_pydantic_models_with_complex_fields(schema, output_file): - enum_dicts = {} - with open(output_file, 'w') as f: - f.write('from __future__ import annotations\n') - f.write('from pydantic import BaseModel, Field, conlist, condecimal, constr, conint, confloat, typing\n\n') +# Helper function to handle the writing of model fields +def write_field(file, prop_name: str, prop_info: Dict, prop_description: str, name: str): + if '$ref' in prop_info: + ref_model = prop_info['$ref'].split('/')[-1] + if ref_model == 'base64Binary': + ref_model = 'string' + file.write(f' {prop_name}_field: {ref_model}Model = Field(default=None, alias="{prop_name}", description="{prop_description}")\n') + elif 'type' in prop_info and 'items' in prop_info and '$ref' in prop_info['items']: + item_model = prop_info['items']['$ref'].split('/')[-1] + file.write(f' {prop_name}_field: List[{item_model}Model] = Field(default_factory=list, alias="{prop_name}", description="{prop_description}")\n') + elif 'enum' in prop_info: + file.write(f' {name}_{prop_name}_field: {prop_name}Model = Field(..., alias="{prop_name}", description="{prop_description}")\n') + elif 'const' in prop_info: + file.write(f' {prop_name}: str = "{prop_info["const"]}"\n') +# Generate all Pydantic models from the schema +def generate_pydantic_models(schema: Dict[str, Any], output_file: str): + with open(output_file, 'w') as file: + enum_list_total = [] + file.write('from __future__ import annotations\n') + file.write('from pydantic import BaseModel, Field\n') + file.write('from typing import List, Optional\n') + file.write('from enum import Enum\n\n') for model_name, model_info in schema.items(): if model_name != 'Base': - enum_items = write_model(f, model_name, model_info) - enum_dicts.update(enum_items) - + enum_list = write_model(file, model_name, model_info) + enum_list_total.extend(enum_list) + #TODO: Need to keep a global list of enums to avoid duplicates + for enum_item in enum_list_total: + name = list(enum_item.keys())[0] + file.write(f'class {name}(Enum):\n') + enum_items = enum_item[name] + # for item in enum_items: + ## TODO: Handle special characters in item names + # file.write(f' {item.replace("-", "_")} = "{item}"\n') + file.write(' pass\n\n') + file.write('\n') + + file.write('HumanNameModel.model_rebuild()\n') +# Main execution flow if __name__ == '__main__': - data = load_data('../data/fhir.schema.json') - definitions = data['definitions'] - generate_pydantic_models_with_complex_fields(definitions, 'pydantic_complex_field_models_vsc.py') + data: dict = load_data('../data/fhir.schema.json') + definitions = data.get('definitions', {}) + generate_pydantic_models(definitions, 'src/pydantic_models.py') print('Pydantic models generated successfully!') +class MyEmptyClass(): + pass diff --git a/src/pydantic_models.py b/src/pydantic_models.py new file mode 100644 index 0000000..67772aa --- /dev/null +++ b/src/pydantic_models.py @@ -0,0 +1,12094 @@ +from __future__ import annotations +from pydantic import BaseModel, Field, conint +from typing import List, Optional +from enum import Enum + +class ResourceListModel(Enum): + Account: stringModel = "#/definitions/Account" + ActivityDefinition: stringModel = "#/definitions/ActivityDefinition" + ActorDefinition: stringModel = "#/definitions/ActorDefinition" + AdministrableProductDefinition: stringModel = "#/definitions/AdministrableProductDefinition" + AdverseEvent: stringModel = "#/definitions/AdverseEvent" + AllergyIntolerance: stringModel = "#/definitions/AllergyIntolerance" + Appointment: stringModel = "#/definitions/Appointment" + AppointmentResponse: stringModel = "#/definitions/AppointmentResponse" + ArtifactAssessment: stringModel = "#/definitions/ArtifactAssessment" + AuditEvent: stringModel = "#/definitions/AuditEvent" + Basic: stringModel = "#/definitions/Basic" + Binary: stringModel = "#/definitions/Binary" + BiologicallyDerivedProduct: stringModel = "#/definitions/BiologicallyDerivedProduct" + BiologicallyDerivedProductDispense: stringModel = "#/definitions/BiologicallyDerivedProductDispense" + BodyStructure: stringModel = "#/definitions/BodyStructure" + Bundle: stringModel = "#/definitions/Bundle" + CapabilityStatement: stringModel = "#/definitions/CapabilityStatement" + CarePlan: stringModel = "#/definitions/CarePlan" + CareTeam: stringModel = "#/definitions/CareTeam" + ChargeItem: stringModel = "#/definitions/ChargeItem" + ChargeItemDefinition: stringModel = "#/definitions/ChargeItemDefinition" + Citation: stringModel = "#/definitions/Citation" + Claim: stringModel = "#/definitions/Claim" + ClaimResponse: stringModel = "#/definitions/ClaimResponse" + ClinicalImpression: stringModel = "#/definitions/ClinicalImpression" + ClinicalUseDefinition: stringModel = "#/definitions/ClinicalUseDefinition" + CodeSystem: stringModel = "#/definitions/CodeSystem" + Communication: stringModel = "#/definitions/Communication" + CommunicationRequest: stringModel = "#/definitions/CommunicationRequest" + CompartmentDefinition: stringModel = "#/definitions/CompartmentDefinition" + Composition: stringModel = "#/definitions/Composition" + ConceptMap: stringModel = "#/definitions/ConceptMap" + Condition: stringModel = "#/definitions/Condition" + ConditionDefinition: stringModel = "#/definitions/ConditionDefinition" + Consent: stringModel = "#/definitions/Consent" + Contract: stringModel = "#/definitions/Contract" + Coverage: stringModel = "#/definitions/Coverage" + CoverageEligibilityRequest: stringModel = "#/definitions/CoverageEligibilityRequest" + CoverageEligibilityResponse: stringModel = "#/definitions/CoverageEligibilityResponse" + DetectedIssue: stringModel = "#/definitions/DetectedIssue" + Device: stringModel = "#/definitions/Device" + DeviceAssociation: stringModel = "#/definitions/DeviceAssociation" + DeviceDefinition: stringModel = "#/definitions/DeviceDefinition" + DeviceDispense: stringModel = "#/definitions/DeviceDispense" + DeviceMetric: stringModel = "#/definitions/DeviceMetric" + DeviceRequest: stringModel = "#/definitions/DeviceRequest" + DeviceUsage: stringModel = "#/definitions/DeviceUsage" + DiagnosticReport: stringModel = "#/definitions/DiagnosticReport" + DocumentReference: stringModel = "#/definitions/DocumentReference" + Encounter: stringModel = "#/definitions/Encounter" + EncounterHistory: stringModel = "#/definitions/EncounterHistory" + Endpoint: stringModel = "#/definitions/Endpoint" + EnrollmentRequest: stringModel = "#/definitions/EnrollmentRequest" + EnrollmentResponse: stringModel = "#/definitions/EnrollmentResponse" + EpisodeOfCare: stringModel = "#/definitions/EpisodeOfCare" + EventDefinition: stringModel = "#/definitions/EventDefinition" + Evidence: stringModel = "#/definitions/Evidence" + EvidenceReport: stringModel = "#/definitions/EvidenceReport" + EvidenceVariable: stringModel = "#/definitions/EvidenceVariable" + ExampleScenario: stringModel = "#/definitions/ExampleScenario" + ExplanationOfBenefit: stringModel = "#/definitions/ExplanationOfBenefit" + FamilyMemberHistory: stringModel = "#/definitions/FamilyMemberHistory" + Flag: stringModel = "#/definitions/Flag" + FormularyItem: stringModel = "#/definitions/FormularyItem" + GenomicStudy: stringModel = "#/definitions/GenomicStudy" + Goal: stringModel = "#/definitions/Goal" + GraphDefinition: stringModel = "#/definitions/GraphDefinition" + Group: stringModel = "#/definitions/Group" + GuidanceResponse: stringModel = "#/definitions/GuidanceResponse" + HealthcareService: stringModel = "#/definitions/HealthcareService" + ImagingSelection: stringModel = "#/definitions/ImagingSelection" + ImagingStudy: stringModel = "#/definitions/ImagingStudy" + Immunization: stringModel = "#/definitions/Immunization" + ImmunizationEvaluation: stringModel = "#/definitions/ImmunizationEvaluation" + ImmunizationRecommendation: stringModel = "#/definitions/ImmunizationRecommendation" + ImplementationGuide: stringModel = "#/definitions/ImplementationGuide" + Ingredient: stringModel = "#/definitions/Ingredient" + InsurancePlan: stringModel = "#/definitions/InsurancePlan" + InventoryItem: stringModel = "#/definitions/InventoryItem" + InventoryReport: stringModel = "#/definitions/InventoryReport" + Invoice: stringModel = "#/definitions/Invoice" + Library: stringModel = "#/definitions/Library" + Linkage: stringModel = "#/definitions/Linkage" + List: stringModel = "#/definitions/List" + Location: stringModel = "#/definitions/Location" + ManufacturedItemDefinition: stringModel = "#/definitions/ManufacturedItemDefinition" + Measure: stringModel = "#/definitions/Measure" + MeasureReport: stringModel = "#/definitions/MeasureReport" + Medication: stringModel = "#/definitions/Medication" + MedicationAdministration: stringModel = "#/definitions/MedicationAdministration" + MedicationDispense: stringModel = "#/definitions/MedicationDispense" + MedicationKnowledge: stringModel = "#/definitions/MedicationKnowledge" + MedicationRequest: stringModel = "#/definitions/MedicationRequest" + MedicationStatement: stringModel = "#/definitions/MedicationStatement" + MedicinalProductDefinition: stringModel = "#/definitions/MedicinalProductDefinition" + MessageDefinition: stringModel = "#/definitions/MessageDefinition" + MessageHeader: stringModel = "#/definitions/MessageHeader" + MolecularSequence: stringModel = "#/definitions/MolecularSequence" + NamingSystem: stringModel = "#/definitions/NamingSystem" + NutritionIntake: stringModel = "#/definitions/NutritionIntake" + NutritionOrder: stringModel = "#/definitions/NutritionOrder" + NutritionProduct: stringModel = "#/definitions/NutritionProduct" + Observation: stringModel = "#/definitions/Observation" + ObservationDefinition: stringModel = "#/definitions/ObservationDefinition" + OperationDefinition: stringModel = "#/definitions/OperationDefinition" + OperationOutcome: stringModel = "#/definitions/OperationOutcome" + Organization: stringModel = "#/definitions/Organization" + OrganizationAffiliation: stringModel = "#/definitions/OrganizationAffiliation" + PackagedProductDefinition: stringModel = "#/definitions/PackagedProductDefinition" + Parameters: stringModel = "#/definitions/Parameters" + Patient: stringModel = "#/definitions/Patient" + PaymentNotice: stringModel = "#/definitions/PaymentNotice" + PaymentReconciliation: stringModel = "#/definitions/PaymentReconciliation" + Permission: stringModel = "#/definitions/Permission" + Person: stringModel = "#/definitions/Person" + PlanDefinition: stringModel = "#/definitions/PlanDefinition" + Practitioner: stringModel = "#/definitions/Practitioner" + PractitionerRole: stringModel = "#/definitions/PractitionerRole" + Procedure: stringModel = "#/definitions/Procedure" + Provenance: stringModel = "#/definitions/Provenance" + Questionnaire: stringModel = "#/definitions/Questionnaire" + QuestionnaireResponse: stringModel = "#/definitions/QuestionnaireResponse" + RegulatedAuthorization: stringModel = "#/definitions/RegulatedAuthorization" + RelatedPerson: stringModel = "#/definitions/RelatedPerson" + RequestOrchestration: stringModel = "#/definitions/RequestOrchestration" + Requirements: stringModel = "#/definitions/Requirements" + ResearchStudy: stringModel = "#/definitions/ResearchStudy" + ResearchSubject: stringModel = "#/definitions/ResearchSubject" + RiskAssessment: stringModel = "#/definitions/RiskAssessment" + Schedule: stringModel = "#/definitions/Schedule" + SearchParameter: stringModel = "#/definitions/SearchParameter" + ServiceRequest: stringModel = "#/definitions/ServiceRequest" + Slot: stringModel = "#/definitions/Slot" + Specimen: stringModel = "#/definitions/Specimen" + SpecimenDefinition: stringModel = "#/definitions/SpecimenDefinition" + StructureDefinition: stringModel = "#/definitions/StructureDefinition" + StructureMap: stringModel = "#/definitions/StructureMap" + Subscription: stringModel = "#/definitions/Subscription" + SubscriptionStatus: stringModel = "#/definitions/SubscriptionStatus" + SubscriptionTopic: stringModel = "#/definitions/SubscriptionTopic" + Substance: stringModel = "#/definitions/Substance" + SubstanceDefinition: stringModel = "#/definitions/SubstanceDefinition" + SubstanceNucleicAcid: stringModel = "#/definitions/SubstanceNucleicAcid" + SubstancePolymer: stringModel = "#/definitions/SubstancePolymer" + SubstanceProtein: stringModel = "#/definitions/SubstanceProtein" + SubstanceReferenceInformation: stringModel = "#/definitions/SubstanceReferenceInformation" + SubstanceSourceMaterial: stringModel = "#/definitions/SubstanceSourceMaterial" + SupplyDelivery: stringModel = "#/definitions/SupplyDelivery" + SupplyRequest: stringModel = "#/definitions/SupplyRequest" + Task: stringModel = "#/definitions/Task" + TerminologyCapabilities: stringModel = "#/definitions/TerminologyCapabilities" + TestPlan: stringModel = "#/definitions/TestPlan" + TestReport: stringModel = "#/definitions/TestReport" + TestScript: stringModel = "#/definitions/TestScript" + Transport: stringModel = "#/definitions/Transport" + ValueSet: stringModel = "#/definitions/ValueSet" + VerificationResult: stringModel = "#/definitions/VerificationResult" + VisionPrescription: stringModel = "#/definitions/VisionPrescription" + +class booleanModel(BaseModel): + boolean: str = Field(pattern=r'^true|false$') + + class Config: + schema_extra = { + "description": "Value of true or false" + } + + +class canonicalModel(BaseModel): + canonical: str = Field(pattern=r'^\S*$') + + class Config: + schema_extra = { + "description": "A URI that is a reference to a canonical URL on a FHIR resource" + } + + +class codeModel(BaseModel): + code: str = Field(pattern=r'^[^\s]+( [^\s]+)*$') + + class Config: + schema_extra = { + "description": "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents" + } + + +class dateModel(BaseModel): + date: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$') + + class Config: + schema_extra = { + "description": "A date or partial date (e.g. just year or year + month). There is no UTC offset. The format is a union of the schema types gYear, gYearMonth and date. Dates SHALL be valid dates." + } + + +class dateTimeModel(BaseModel): + dateTime: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$') + + class Config: + schema_extra = { + "description": "A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a UTC offset SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates." + } + + +class decimalModel(BaseModel): + decimal: float = Field(pattern=r'^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$') + + class Config: + schema_extra = { + "description": "A rational number with implicit precision" + } + + +class idModel(BaseModel): + id: str = Field(pattern=r'^[A-Za-z0-9\-\.]{1,64}$') + + class Config: + schema_extra = { + "description": "Any combination of letters, numerals, - and ., with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive." + } + + +class instantModel(BaseModel): + instant: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$') + + class Config: + schema_extra = { + "description": "An instant in time - known at least to the second" + } + + +class integerModel(BaseModel): + integer: float = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') + + class Config: + schema_extra = { + "description": "A whole number" + } + + +class integer64Model(BaseModel): + integer64: str = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') + + class Config: + schema_extra = { + "description": "A very large whole number" + } + + +class markdownModel(BaseModel): + markdown: str = Field(pattern=r'^^[\s\S]+$$') + + class Config: + schema_extra = { + "description": "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine" + } + + +class oidModel(BaseModel): + oid: str = Field(pattern=r'^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$') + + class Config: + schema_extra = { + "description": "An OID represented as a URI" + } + + +class positiveIntModel(BaseModel): + positiveInt: conint(gt=0) + + class Config: + schema_extra = { + "description": "An integer with a value that is positive (e.g. >0)" + } + + +class stringModel(BaseModel): + string: str = Field(pattern=r'^^[\s\S]+$$') + + class Config: + schema_extra = { + "description": "A sequence of Unicode characters" + } + + +class timeModel(BaseModel): + time: str = Field(pattern=r'^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$') + + class Config: + schema_extra = { + "description": "A time during the day, with no date specified" + } + + +class unsignedIntModel(BaseModel): + unsignedInt: float = Field(pattern=r'^[0]|([1-9][0-9]*)$') + + class Config: + schema_extra = { + "description": "An integer with a value that is not negative (e.g. >= 0)" + } + + +class uriModel(BaseModel): + uri: str = Field(pattern=r'^\S*$') + + class Config: + schema_extra = { + "description": "String of characters used to identify a name or a resource" + } + + +class urlModel(BaseModel): + url: str = Field(pattern=r'^\S*$') + + class Config: + schema_extra = { + "description": "A URI that is a literal reference" + } + + +class uuidModel(BaseModel): + uuid: str = Field(pattern=r'^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') + + class Config: + schema_extra = { + "description": "A UUID, represented as a URI" + } + + + +class ElementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + +class DataTypeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + +class PrimitiveTypeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + +class BackboneTypeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + +class ExtensionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + url_field: uriModel = Field(default=None, alias="url", description="Source of the definition for the extension code - a logical name or a URL.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") + +class NarrativeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") + # div_field: xhtmlModel = Field(default=None, alias="div", description="The actual narrative content, a stripped down version of XHTML.") + +class AnnotationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + authorReference_field: ReferenceModel = Field(default=None, alias="authorReference", description="The individual responsible for making the annotation.") + time_field: dateTimeModel = Field(default=None, alias="time", description="Indicates when this particular annotation was made.") + text_field: markdownModel = Field(default=None, alias="text", description="The text of the annotation in markdown format.") + +class AttachmentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + contentType_field: codeModel = Field(default=None, alias="contentType", description="Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.") + language_field: codeModel = Field(default=None, alias="language", description="The human language of the content. The value can be any valid value according to BCP 47.") + data_field: stringModel = Field(default=None, alias="data", description="The actual data of the attachment - a sequence of bytes, base64 encoded.") + url_field: urlModel = Field(default=None, alias="url", description="A location where the data can be accessed.") + size_field: integer64Model = Field(default=None, alias="size", description="The number of bytes of data that make up this attachment (before base64 encoding, if that is done).") + hash_field: stringModel = Field(default=None, alias="hash", description="The calculated hash of the data using SHA-1. Represented using base64.") + title_field: stringModel = Field(default=None, alias="title", description="A label or set of text to display in place of the data.") + creation_field: dateTimeModel = Field(default=None, alias="creation", description="The date that the attachment was first created.") + height_field: positiveIntModel = Field(default=None, alias="height", description="Height of the image in pixels (photo/video).") + width_field: positiveIntModel = Field(default=None, alias="width", description="Width of the image in pixels (photo/video).") + frames_field: positiveIntModel = Field(default=None, alias="frames", description="The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.") + duration_field: decimalModel = Field(default=None, alias="duration", description="The duration of the recording in seconds - for audio and video.") + pages_field: positiveIntModel = Field(default=None, alias="pages", description="The number of pages when printed.") + +class IdentifierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.") + system_field: uriModel = Field(default=None, alias="system", description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.") + value_field: stringModel = Field(default=None, alias="value", description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which identifier is/was valid for use.") + assigner_field: ReferenceModel = Field(default=None, alias="assigner", description="Organization that issued/manages the identifier.") + +class CodeableConceptModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + coding_field: List[CodingModel] = Field(default_factory=list, alias="coding", description="A reference to a code defined by a terminology system.") + text_field: stringModel = Field(default=None, alias="text", description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.") + +class CodeableReferenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + concept_field: CodeableConceptModel = Field(default=None, alias="concept", description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a resource the provides exact details about the information being referenced.") + +class CodingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the code system that defines the meaning of the symbol in the code.") + version_field: stringModel = Field(default=None, alias="version", description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.") + code_field: codeModel = Field(default=None, alias="code", description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).") + display_field: stringModel = Field(default=None, alias="display", description="A representation of the meaning of the code in the system, following the rules of the system.") + userSelected_field: booleanModel = Field(default=None, alias="userSelected", description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).") + +class QuantityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") + # Quantity_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") + code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") + +class DurationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") + # Duration_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") + code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") + +class DistanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") + # Distance_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") + code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") + +class CountModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") + # Count_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") + code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") + +class MoneyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + value_field: decimalModel = Field(default=None, alias="value", description="Numerical value (with implicit precision).") + currency_field: codeModel = Field(default=None, alias="currency", description="ISO 4217 Currency Code.") + +class AgeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") + # Age_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") + code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") + +class RangeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + low_field: QuantityModel = Field(default=None, alias="low", description="The low limit. The boundary is inclusive.") + high_field: QuantityModel = Field(default=None, alias="high", description="The high limit. The boundary is inclusive.") + +class PeriodModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + start_field: dateTimeModel = Field(default=None, alias="start", description="The start of the period. The boundary is inclusive.") + end_field: dateTimeModel = Field(default=None, alias="end", description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.") + +class RatioModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + numerator_field: QuantityModel = Field(default=None, alias="numerator", description="The value of the numerator.") + denominator_field: QuantityModel = Field(default=None, alias="denominator", description="The value of the denominator.") + +class RatioRangeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + lowNumerator_field: QuantityModel = Field(default=None, alias="lowNumerator", description="The value of the low limit numerator.") + highNumerator_field: QuantityModel = Field(default=None, alias="highNumerator", description="The value of the high limit numerator.") + denominator_field: QuantityModel = Field(default=None, alias="denominator", description="The value of the denominator.") + +class ReferenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + reference_field: stringModel = Field(default=None, alias="reference", description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.") + type_field: uriModel = Field(default=None, alias="type", description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.") + display_field: stringModel = Field(default=None, alias="display", description="Plain text narrative that identifies the resource in addition to the resource reference.") + +class SampledDataModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + origin_field: QuantityModel = Field(default=None, alias="origin", description="The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series.") + interval_field: decimalModel = Field(default=None, alias="interval", description="Amount of intervalUnits between samples, e.g. milliseconds for time-based sampling.") + intervalUnit_field: codeModel = Field(default=None, alias="intervalUnit", description="The measurement unit in which the sample interval is expressed.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A correction factor that is applied to the sampled data points before they are added to the origin.") + lowerLimit_field: decimalModel = Field(default=None, alias="lowerLimit", description="The lower limit of detection of the measured points. This is needed if any of the data points have the value L (lower than detection limit).") + upperLimit_field: decimalModel = Field(default=None, alias="upperLimit", description="The upper limit of detection of the measured points. This is needed if any of the data points have the value U (higher than detection limit).") + dimensions_field: positiveIntModel = Field(default=None, alias="dimensions", description="The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once.") + codeMap_field: canonicalModel = Field(default=None, alias="codeMap", description="Reference to ConceptMap that defines the codes used in the data.") + offsets_field: stringModel = Field(default=None, alias="offsets", description="A series of data points which are decimal values separated by a single space (character u20). The units in which the offsets are expressed are found in intervalUnit. The absolute point at which the measurements begin SHALL be conveyed outside the scope of this datatype, e.g. Observation.effectiveDateTime for a timing offset.") + data_field: stringModel = Field(default=None, alias="data", description="A series of data points which are decimal values or codes separated by a single space (character u20). The special codes E (error), L (below detection limit) and U (above detection limit) are also defined for used in place of decimal values.") + +class SignatureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + type_field: List[CodingModel] = Field(default_factory=list, alias="type", description="An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document.") + when_field: instantModel = Field(default=None, alias="when", description="When the digital signature was signed.") + who_field: ReferenceModel = Field(default=None, alias="who", description="A reference to an application-usable description of the identity that signed (e.g. the signature used their private key).") + onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="A reference to an application-usable description of the identity that is represented by the signature.") + targetFormat_field: codeModel = Field(default=None, alias="targetFormat", description="A mime type that indicates the technical format of the target resources signed by the signature.") + sigFormat_field: codeModel = Field(default=None, alias="sigFormat", description="A mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc.") + data_field: stringModel = Field(default=None, alias="data", description="The base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty.") + +class HumanNameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # HumanName_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for this name.") + text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.") + family_field: stringModel = Field(default=None, alias="family", description="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.") + given_field: List[stringModel] = Field(default_factory=list, alias="given", description="Given name.") + prefix_field: List[stringModel] = Field(default_factory=list, alias="prefix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.") + suffix_field: List[stringModel] = Field(default_factory=list, alias="suffix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.") + period_field: PeriodModel = Field(default=None, alias="period", description="Indicates the period of time when this name was valid for the named person.") + +class AddressModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Address_use_field: useModel = Field(..., alias="use", description="The purpose of this address.") + # Address_type_field: typeModel = Field(..., alias="type", description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.") + text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.") + line_field: List[stringModel] = Field(default_factory=list, alias="line", description="This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.") + city_field: stringModel = Field(default=None, alias="city", description="The name of the city, town, suburb, village or other community or delivery center.") + district_field: stringModel = Field(default=None, alias="district", description="The name of the administrative area (county).") + state_field: stringModel = Field(default=None, alias="state", description="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).") + postalCode_field: stringModel = Field(default=None, alias="postalCode", description="A postal code designating a region defined by the postal service.") + country_field: stringModel = Field(default=None, alias="country", description="Country - a nation as commonly understood or generally accepted.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period when address was/is in use.") + +class ContactPointModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # ContactPoint_system_field: systemModel = Field(..., alias="system", description="Telecommunications form for contact point - what communications system is required to make use of the contact.") + value_field: stringModel = Field(default=None, alias="value", description="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).") + # ContactPoint_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for the contact point.") + rank_field: positiveIntModel = Field(default=None, alias="rank", description="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period when the contact point was/is in use.") + +class TimingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + event_field: List[dateTimeModel] = Field(default_factory=list, alias="event", description="Identifies specific times when the event occurs.") + repeat_field: Timing_RepeatModel = Field(default=None, alias="repeat", description="A set of rules that describe when the event is scheduled.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code).") + +class Timing_RepeatModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + boundsDuration_field: DurationModel = Field(default=None, alias="boundsDuration", description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.") + boundsRange_field: RangeModel = Field(default=None, alias="boundsRange", description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.") + boundsPeriod_field: PeriodModel = Field(default=None, alias="boundsPeriod", description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.") + count_field: positiveIntModel = Field(default=None, alias="count", description="A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values.") + countMax_field: positiveIntModel = Field(default=None, alias="countMax", description="If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times.") + duration_field: decimalModel = Field(default=None, alias="duration", description="How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration.") + durationMax_field: decimalModel = Field(default=None, alias="durationMax", description="If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length.") + # Timing_Repeat_durationUnit_field: durationUnitModel = Field(..., alias="durationUnit", description="The units of time for the duration, in UCUM units") + frequency_field: positiveIntModel = Field(default=None, alias="frequency", description="The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency.") + frequencyMax_field: positiveIntModel = Field(default=None, alias="frequencyMax", description="If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range.") + period_field: decimalModel = Field(default=None, alias="period", description="Indicates the duration of time over which repetitions are to occur; e.g. to express 3 times per day, 3 would be the frequency and 1 day would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length.") + periodMax_field: decimalModel = Field(default=None, alias="periodMax", description="If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as do this once every 3-5 days.") + # Timing_Repeat_periodUnit_field: periodUnitModel = Field(..., alias="periodUnit", description="The units of time for the period in UCUM units") + dayOfWeek_field: List[codeModel] = Field(default_factory=list, alias="dayOfWeek", description="If one or more days of week is provided, then the action happens only on the specified day(s).") + timeOfDay_field: List[timeModel] = Field(default_factory=list, alias="timeOfDay", description="Specified time of day for action to take place.") + offset_field: unsignedIntModel = Field(default=None, alias="offset", description="The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event.") + +class MetaModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + versionId_field: idModel = Field(default=None, alias="versionId", description="The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.") + lastUpdated_field: instantModel = Field(default=None, alias="lastUpdated", description="When the resource last changed - e.g. when the version changed.") + source_field: uriModel = Field(default=None, alias="source", description="A uri that identifies the source system of the resource. This provides a minimal amount of [[[Provenance]]] information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.") + profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="A list of profiles (references to [[[StructureDefinition]]] resources) that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].") + security_field: List[CodingModel] = Field(default_factory=list, alias="security", description="Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.") + tag_field: List[CodingModel] = Field(default_factory=list, alias="tag", description="Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.") + +class ContactDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + name_field: stringModel = Field(default=None, alias="name", description="The name of an individual to contact.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="The contact details for the individual (if a name was provided) or the organization.") + +class ExtendedContactDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + purpose_field: CodeableConceptModel = Field(default=None, alias="purpose", description="The purpose/type of contact.") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="The name of an individual to contact, some types of contact detail are usually blank.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="The contact details application for the purpose defined.") + address_field: AddressModel = Field(default=None, alias="address", description="Address for the contact.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="This contact detail is handled/monitored by a specific organization. If the name is provided in the contact, then it is referring to the named individual within this organization.") + period_field: PeriodModel = Field(default=None, alias="period", description="Period that this contact was valid for usage.") + +class VirtualServiceDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + channelType_field: CodingModel = Field(default=None, alias="channelType", description="The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp).") + addressContactPoint_field: ContactPointModel = Field(default=None, alias="addressContactPoint", description="What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).") + addressExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="addressExtendedContactDetail", description="What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).") + additionalInfo_field: List[urlModel] = Field(default_factory=list, alias="additionalInfo", description="Address to see alternative connection details.") + maxParticipants_field: positiveIntModel = Field(default=None, alias="maxParticipants", description="Maximum number of participants supported by the virtual service.") + sessionKey_field: stringModel = Field(default=None, alias="sessionKey", description="Session Key required by the virtual service.") + +class AvailabilityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + availableTime_field: List[Availability_AvailableTimeModel] = Field(default_factory=list, alias="availableTime", description="Times the {item} is available.") + notAvailableTime_field: List[Availability_NotAvailableTimeModel] = Field(default_factory=list, alias="notAvailableTime", description="Not available during this time due to provided reason.") + +class Availability_AvailableTimeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + daysOfWeek_field: List[codeModel] = Field(default_factory=list, alias="daysOfWeek", description="mon | tue | wed | thu | fri | sat | sun.") + allDay_field: booleanModel = Field(default=None, alias="allDay", description="Always available? i.e. 24 hour service.") + availableStartTime_field: timeModel = Field(default=None, alias="availableStartTime", description="Opening time of day (ignored if allDay = true).") + availableEndTime_field: timeModel = Field(default=None, alias="availableEndTime", description="Closing time of day (ignored if allDay = true).") + +class Availability_NotAvailableTimeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: stringModel = Field(default=None, alias="description", description="Reason presented to the user explaining why time not available.") + during_field: PeriodModel = Field(default=None, alias="during", description="Service not available during this period.") + +class MonetaryComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + type_field: codeModel = Field(default=None, alias="type", description="base | surcharge | deduction | discount | tax | informational.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.") + factor_field: decimalModel = Field(default=None, alias="factor", description="Factor used for calculating this component.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Explicit value amount to be used.") + +class ContributorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Contributor_type_field: typeModel = Field(..., alias="type", description="The type of contributor.") + name_field: stringModel = Field(default=None, alias="name", description="The name of the individual or organization responsible for the contribution.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the contributor.") + +class DataRequirementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + type_field: codeModel = Field(default=None, alias="type", description="The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile.") + profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="The profile of the required data, specified as the uri of the profile definition.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed.") + mustSupport_field: List[stringModel] = Field(default_factory=list, alias="mustSupport", description="Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. ") + codeFilter_field: List[DataRequirement_CodeFilterModel] = Field(default_factory=list, alias="codeFilter", description="Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed.") + dateFilter_field: List[DataRequirement_DateFilterModel] = Field(default_factory=list, alias="dateFilter", description="Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed.") + valueFilter_field: List[DataRequirement_ValueFilterModel] = Field(default_factory=list, alias="valueFilter", description="Value filters specify additional constraints on the data for elements other than code-valued or date-valued. Each value filter specifies an additional constraint on the data (i.e. valueFilters are AND'ed, not OR'ed).") + limit_field: positiveIntModel = Field(default=None, alias="limit", description="Specifies a maximum number of results that are required (uses the _count search parameter).") + sort_field: List[DataRequirement_SortModel] = Field(default_factory=list, alias="sort", description="Specifies the order of the results to be returned.") + +class DataRequirement_CodeFilterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept.") + searchParam_field: stringModel = Field(default=None, alias="searchParam", description="A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The valueset for the code filter. The valueSet and code elements are additive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.") + code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="The codes for the code filter. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codes.") + +class DataRequirement_DateFilterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing.") + searchParam_field: stringModel = Field(default=None, alias="searchParam", description="A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now.") + +class DataRequirement_ValueFilterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of a type that is comparable to the valueFilter.value[x] element for the filter.") + searchParam_field: stringModel = Field(default=None, alias="searchParam", description="A search parameter defined on the specified type of the DataRequirement, and which searches on elements of a type compatible with the type of the valueFilter.value[x] for the filter.") + comparator_field: codeModel = Field(default=None, alias="comparator", description="The comparator to be used to determine whether the value is matching.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the filter.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the filter.") + +class DataRequirement_SortModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The attribute of the sort. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant.") + # DataRequirement_Sort_direction_field: directionModel = Field(..., alias="direction", description="The direction of the sort, ascending or descending.") + +class ParameterDefinitionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + name_field: codeModel = Field(default=None, alias="name", description="The name of the parameter used to allow access to the value of the parameter in evaluation contexts.") + use_field: codeModel = Field(default=None, alias="use", description="Whether the parameter is input or output for the module.") + min_field: integerModel = Field(default=None, alias="min", description="The minimum number of times this parameter SHALL appear in the request or response.") + max_field: stringModel = Field(default=None, alias="max", description="The maximum number of times this element is permitted to appear in the request or response.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="A brief discussion of what the parameter is for and how it is used by the module.") + type_field: codeModel = Field(default=None, alias="type", description="The type of the parameter.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="If specified, this indicates a profile that the input data must conform to, or that the output data will conform to.") + +class RelatedArtifactModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # RelatedArtifact_type_field: typeModel = Field(..., alias="type", description="The type of relationship to the related artifact.") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Provides additional classifiers of the related artifact.") + label_field: stringModel = Field(default=None, alias="label", description="A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index.") + display_field: stringModel = Field(default=None, alias="display", description="A brief description of the document or knowledge resource being referenced, suitable for display to a consumer.") + citation_field: markdownModel = Field(default=None, alias="citation", description="A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format.") + document_field: AttachmentModel = Field(default=None, alias="document", description="The document being referenced, represented as an attachment. This is exclusive with the resource element.") + resource_field: canonicalModel = Field(default=None, alias="resource", description="The related artifact, such as a library, value set, profile, or other knowledge resource.") + resourceReference_field: ReferenceModel = Field(default=None, alias="resourceReference", description="The related artifact, if the artifact is not a canonical resource, or a resource reference to a canonical resource.") + publicationStatus_field: codeModel = Field(default=None, alias="publicationStatus", description="The publication status of the artifact being referred to.") + publicationDate_field: dateModel = Field(default=None, alias="publicationDate", description="The date of publication of the artifact being referred to.") + +class TriggerDefinitionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # TriggerDefinition_type_field: typeModel = Field(..., alias="type", description="The type of triggering event.") + name_field: stringModel = Field(default=None, alias="name", description="A formal name for the event. This may be an absolute URI that identifies the event formally (e.g. from a trigger registry), or a simple relative URI that identifies the event in a local context.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies the event.") + subscriptionTopic_field: canonicalModel = Field(default=None, alias="subscriptionTopic", description="A reference to a SubscriptionTopic resource that defines the event. If this element is provided, no other information about the trigger definition may be supplied.") + timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="The timing of the event (if this is a periodic trigger).") + timingReference_field: ReferenceModel = Field(default=None, alias="timingReference", description="The timing of the event (if this is a periodic trigger).") + data_field: List[DataRequirementModel] = Field(default_factory=list, alias="data", description="The triggering data of the event (if this is a data trigger). If more than one data is requirement is specified, then all the data requirements must be true.") + condition_field: ExpressionModel = Field(default=None, alias="condition", description="A boolean-valued expression that is evaluated in the context of the container of the trigger definition and returns whether or not the trigger fires.") + +class UsageContextModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + code_field: CodingModel = Field(default=None, alias="code", description="A code that identifies the type of context being specified by this usage context.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") + +class DosageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: integerModel = Field(default=None, alias="sequence", description="Indicates the order in which the dosage instructions should be applied or interpreted.") + text_field: stringModel = Field(default=None, alias="text", description="Free text dosage instructions e.g. SIG.") + additionalInstruction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="additionalInstruction", description="Supplemental instructions to the patient on how to take the medication (e.g. with meals ortake half to one hour before food) or warnings for the patient about the medication (e.g. may cause drowsiness or avoid exposure of skin to direct sunlight or sunlamps).") + patientInstruction_field: stringModel = Field(default=None, alias="patientInstruction", description="Instructions in terms that are understood by the patient or consumer.") + timing_field: TimingModel = Field(default=None, alias="timing", description="When medication should be administered.") + asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option).") + asNeededFor_field: List[CodeableConceptModel] = Field(default_factory=list, alias="asNeededFor", description="Indicates whether the Medication is only taken based on a precondition for taking the Medication (CodeableConcept).") + site_field: CodeableConceptModel = Field(default=None, alias="site", description="Body site to administer to.") + route_field: CodeableConceptModel = Field(default=None, alias="route", description="How drug should enter body.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="Technique for administering medication.") + doseAndRate_field: List[Dosage_DoseAndRateModel] = Field(default_factory=list, alias="doseAndRate", description="Depending on the resource,this is the amount of medication administered, to be administered or typical amount to be administered.") + maxDosePerPeriod_field: List[RatioModel] = Field(default_factory=list, alias="maxDosePerPeriod", description="Upper limit on medication per unit of time.") + maxDosePerAdministration_field: QuantityModel = Field(default=None, alias="maxDosePerAdministration", description="Upper limit on medication per administration.") + maxDosePerLifetime_field: QuantityModel = Field(default=None, alias="maxDosePerLifetime", description="Upper limit on medication per lifetime of the patient.") + +class Dosage_DoseAndRateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of dose or rate specified, for example, ordered or calculated.") + doseRange_field: RangeModel = Field(default=None, alias="doseRange", description="Amount of medication per dose.") + doseQuantity_field: QuantityModel = Field(default=None, alias="doseQuantity", description="Amount of medication per dose.") + rateRatio_field: RatioModel = Field(default=None, alias="rateRatio", description="Amount of medication per unit of time.") + rateRange_field: RangeModel = Field(default=None, alias="rateRange", description="Amount of medication per unit of time.") + rateQuantity_field: QuantityModel = Field(default=None, alias="rateQuantity", description="Amount of medication per unit of time.") + +class ProductShelfLifeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="This describes the shelf life, taking into account various scenarios such as shelf life of the packaged Medicinal Product itself, shelf life after transformation where necessary and shelf life after the first opening of a bottle, etc. The shelf life type shall be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified.") + periodDuration_field: DurationModel = Field(default=None, alias="periodDuration", description="The shelf life time period can be specified using a numerical value for the period of time and its unit of time measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used.") + specialPrecautionsForStorage_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialPrecautionsForStorage", description="Special precautions for storage, if any, can be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified.") + +class MarketingStatusModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + country_field: CodeableConceptModel = Field(default=None, alias="country", description="The country in which the marketing authorization has been granted shall be specified It should be specified using the ISO 3166 ‑ 1 alpha-2 code elements.") + jurisdiction_field: CodeableConceptModel = Field(default=None, alias="jurisdiction", description="Where a Medicines Regulatory Agency has granted a marketing authorization for which specific provisions within a jurisdiction apply, the jurisdiction can be specified using an appropriate controlled terminology The controlled term and the controlled term identifier shall be specified.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="This attribute provides information on the status of the marketing of the medicinal product See ISO/TS 20443 for more information and examples.") + dateRange_field: PeriodModel = Field(default=None, alias="dateRange", description="The date when the Medicinal Product is placed on the market by the Marketing Authorization Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain.") + restoreDate_field: dateTimeModel = Field(default=None, alias="restoreDate", description="The date when the Medicinal Product is placed on the market by the Marketing Authorization Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain.") + +class ExpressionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + description_field: stringModel = Field(default=None, alias="description", description="A brief, natural language description of the condition that effectively communicates the intended semantics.") + name_field: codeModel = Field(default=None, alias="name", description="A short name assigned to the expression to allow for multiple reuse of the expression in the context where it is defined.") + language_field: codeModel = Field(default=None, alias="language", description="The media type of the language for the expression.") + expression_field: stringModel = Field(default=None, alias="expression", description="An expression in the specified language that returns a value.") + reference_field: uriModel = Field(default=None, alias="reference", description="A URI that defines where the expression is found.") + +class ElementDefinitionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The path identifies the element and is expressed as a .-separated list of ancestor elements, beginning with the name of the resource or extension.") + sliceName_field: stringModel = Field(default=None, alias="sliceName", description="The name of this element definition slice, when slicing is working. The name must be a token with no dots or spaces. This is a unique name referring to a specific set of constraints applied to this element, used to provide a name to different slices of the same element.") + sliceIsConstraining_field: booleanModel = Field(default=None, alias="sliceIsConstraining", description="If true, indicates that this slice definition is constraining a slice definition with the same name in an inherited profile. If false, the slice is not overriding any slice in an inherited profile. If missing, the slice might or might not be overriding a slice in an inherited profile, depending on the sliceName.") + label_field: stringModel = Field(default=None, alias="label", description="A single preferred label which is the text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form.") + code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="A code that has the same meaning as the element in a particular terminology.") + slicing_field: ElementDefinition_SlicingModel = Field(default=None, alias="slicing", description="Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).") + short_field: stringModel = Field(default=None, alias="short", description="A concise description of what this element means (e.g. for use in autogenerated summaries).") + definition_field: markdownModel = Field(default=None, alias="definition", description="Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. (Note: The text you are reading is specified in ElementDefinition.definition).") + comment_field: markdownModel = Field(default=None, alias="comment", description="Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. (Note: The text you are reading is specified in ElementDefinition.comment).") + requirements_field: markdownModel = Field(default=None, alias="requirements", description="This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element.") + alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="Identifies additional names by which this element might also be known.") + min_field: unsignedIntModel = Field(default=None, alias="min", description="The minimum number of times this element SHALL appear in the instance.") + max_field: stringModel = Field(default=None, alias="max", description="The maximum number of times this element is permitted to appear in the instance.") + base_field: ElementDefinition_BaseModel = Field(default=None, alias="base", description="Information about the base definition of the element, provided to make it unnecessary for tools to trace the deviation of the element through the derived and related profiles. When the element definition is not the original definition of an element - e.g. either in a constraint on another type, or for elements from a super type in a snap shot - then the information in provided in the element definition may be different to the base definition. On the original definition of the element, it will be same.") + contentReference_field: uriModel = Field(default=None, alias="contentReference", description="Identifies an element defined elsewhere in the definition whose content rules should be applied to the current element. ContentReferences bring across all the rules that are in the ElementDefinition for the element, including definitions, cardinality constraints, bindings, invariants etc.") + type_field: List[ElementDefinition_TypeModel] = Field(default_factory=list, alias="type", description="The data type or resource that the value of this element is permitted to be.") + defaultValueAddress_field: AddressModel = Field(default=None, alias="defaultValueAddress", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueAge_field: AgeModel = Field(default=None, alias="defaultValueAge", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueAnnotation_field: AnnotationModel = Field(default=None, alias="defaultValueAnnotation", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueAttachment_field: AttachmentModel = Field(default=None, alias="defaultValueAttachment", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="defaultValueCodeableConcept", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="defaultValueCodeableReference", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueCoding_field: CodingModel = Field(default=None, alias="defaultValueCoding", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueContactPoint_field: ContactPointModel = Field(default=None, alias="defaultValueContactPoint", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueCount_field: CountModel = Field(default=None, alias="defaultValueCount", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueDistance_field: DistanceModel = Field(default=None, alias="defaultValueDistance", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueDuration_field: DurationModel = Field(default=None, alias="defaultValueDuration", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueHumanName_field: HumanNameModel = Field(default=None, alias="defaultValueHumanName", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueIdentifier_field: IdentifierModel = Field(default=None, alias="defaultValueIdentifier", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueMoney_field: MoneyModel = Field(default=None, alias="defaultValueMoney", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValuePeriod_field: PeriodModel = Field(default=None, alias="defaultValuePeriod", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueQuantity_field: QuantityModel = Field(default=None, alias="defaultValueQuantity", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueRange_field: RangeModel = Field(default=None, alias="defaultValueRange", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueRatio_field: RatioModel = Field(default=None, alias="defaultValueRatio", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueRatioRange_field: RatioRangeModel = Field(default=None, alias="defaultValueRatioRange", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueReference_field: ReferenceModel = Field(default=None, alias="defaultValueReference", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueSampledData_field: SampledDataModel = Field(default=None, alias="defaultValueSampledData", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueSignature_field: SignatureModel = Field(default=None, alias="defaultValueSignature", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueTiming_field: TimingModel = Field(default=None, alias="defaultValueTiming", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueContactDetail_field: ContactDetailModel = Field(default=None, alias="defaultValueContactDetail", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueDataRequirement_field: DataRequirementModel = Field(default=None, alias="defaultValueDataRequirement", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueExpression_field: ExpressionModel = Field(default=None, alias="defaultValueExpression", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="defaultValueParameterDefinition", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="defaultValueRelatedArtifact", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="defaultValueTriggerDefinition", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueUsageContext_field: UsageContextModel = Field(default=None, alias="defaultValueUsageContext", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueAvailability_field: AvailabilityModel = Field(default=None, alias="defaultValueAvailability", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="defaultValueExtendedContactDetail", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueDosage_field: DosageModel = Field(default=None, alias="defaultValueDosage", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + defaultValueMeta_field: MetaModel = Field(default=None, alias="defaultValueMeta", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") + meaningWhenMissing_field: markdownModel = Field(default=None, alias="meaningWhenMissing", description="The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing').") + orderMeaning_field: stringModel = Field(default=None, alias="orderMeaning", description="If present, indicates that the order of the repeating element has meaning and describes what that meaning is. If absent, it means that the order of the element has no meaning.") + fixedAddress_field: AddressModel = Field(default=None, alias="fixedAddress", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedAge_field: AgeModel = Field(default=None, alias="fixedAge", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedAnnotation_field: AnnotationModel = Field(default=None, alias="fixedAnnotation", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedAttachment_field: AttachmentModel = Field(default=None, alias="fixedAttachment", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="fixedCodeableConcept", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="fixedCodeableReference", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedCoding_field: CodingModel = Field(default=None, alias="fixedCoding", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedContactPoint_field: ContactPointModel = Field(default=None, alias="fixedContactPoint", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedCount_field: CountModel = Field(default=None, alias="fixedCount", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedDistance_field: DistanceModel = Field(default=None, alias="fixedDistance", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedDuration_field: DurationModel = Field(default=None, alias="fixedDuration", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedHumanName_field: HumanNameModel = Field(default=None, alias="fixedHumanName", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedIdentifier_field: IdentifierModel = Field(default=None, alias="fixedIdentifier", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedMoney_field: MoneyModel = Field(default=None, alias="fixedMoney", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedPeriod_field: PeriodModel = Field(default=None, alias="fixedPeriod", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedQuantity_field: QuantityModel = Field(default=None, alias="fixedQuantity", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedRange_field: RangeModel = Field(default=None, alias="fixedRange", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedRatio_field: RatioModel = Field(default=None, alias="fixedRatio", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedRatioRange_field: RatioRangeModel = Field(default=None, alias="fixedRatioRange", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedReference_field: ReferenceModel = Field(default=None, alias="fixedReference", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedSampledData_field: SampledDataModel = Field(default=None, alias="fixedSampledData", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedSignature_field: SignatureModel = Field(default=None, alias="fixedSignature", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedTiming_field: TimingModel = Field(default=None, alias="fixedTiming", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedContactDetail_field: ContactDetailModel = Field(default=None, alias="fixedContactDetail", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedDataRequirement_field: DataRequirementModel = Field(default=None, alias="fixedDataRequirement", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedExpression_field: ExpressionModel = Field(default=None, alias="fixedExpression", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="fixedParameterDefinition", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="fixedRelatedArtifact", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="fixedTriggerDefinition", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedUsageContext_field: UsageContextModel = Field(default=None, alias="fixedUsageContext", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedAvailability_field: AvailabilityModel = Field(default=None, alias="fixedAvailability", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="fixedExtendedContactDetail", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedDosage_field: DosageModel = Field(default=None, alias="fixedDosage", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + fixedMeta_field: MetaModel = Field(default=None, alias="fixedMeta", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") + patternAddress_field: AddressModel = Field(default=None, alias="patternAddress", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternAge_field: AgeModel = Field(default=None, alias="patternAge", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternAnnotation_field: AnnotationModel = Field(default=None, alias="patternAnnotation", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternAttachment_field: AttachmentModel = Field(default=None, alias="patternAttachment", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="patternCodeableConcept", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="patternCodeableReference", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternCoding_field: CodingModel = Field(default=None, alias="patternCoding", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternContactPoint_field: ContactPointModel = Field(default=None, alias="patternContactPoint", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternCount_field: CountModel = Field(default=None, alias="patternCount", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternDistance_field: DistanceModel = Field(default=None, alias="patternDistance", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternDuration_field: DurationModel = Field(default=None, alias="patternDuration", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternHumanName_field: HumanNameModel = Field(default=None, alias="patternHumanName", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternIdentifier_field: IdentifierModel = Field(default=None, alias="patternIdentifier", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternMoney_field: MoneyModel = Field(default=None, alias="patternMoney", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternPeriod_field: PeriodModel = Field(default=None, alias="patternPeriod", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternQuantity_field: QuantityModel = Field(default=None, alias="patternQuantity", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternRange_field: RangeModel = Field(default=None, alias="patternRange", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternRatio_field: RatioModel = Field(default=None, alias="patternRatio", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternRatioRange_field: RatioRangeModel = Field(default=None, alias="patternRatioRange", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternReference_field: ReferenceModel = Field(default=None, alias="patternReference", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternSampledData_field: SampledDataModel = Field(default=None, alias="patternSampledData", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternSignature_field: SignatureModel = Field(default=None, alias="patternSignature", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternTiming_field: TimingModel = Field(default=None, alias="patternTiming", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternContactDetail_field: ContactDetailModel = Field(default=None, alias="patternContactDetail", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternDataRequirement_field: DataRequirementModel = Field(default=None, alias="patternDataRequirement", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternExpression_field: ExpressionModel = Field(default=None, alias="patternExpression", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="patternParameterDefinition", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="patternRelatedArtifact", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="patternTriggerDefinition", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternUsageContext_field: UsageContextModel = Field(default=None, alias="patternUsageContext", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternAvailability_field: AvailabilityModel = Field(default=None, alias="patternAvailability", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="patternExtendedContactDetail", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternDosage_field: DosageModel = Field(default=None, alias="patternDosage", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + patternMeta_field: MetaModel = Field(default=None, alias="patternMeta", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") + example_field: List[ElementDefinition_ExampleModel] = Field(default_factory=list, alias="example", description="A sample value for this element demonstrating the type of information that would typically be found in the element.") + minValueQuantity_field: QuantityModel = Field(default=None, alias="minValueQuantity", description="The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity.") + maxValueQuantity_field: QuantityModel = Field(default=None, alias="maxValueQuantity", description="The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity.") + maxLength_field: integerModel = Field(default=None, alias="maxLength", description="Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. ```maxLength``` SHOULD only be used on primitive data types that have a string representation (see [[[http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics]]]).") + condition_field: List[idModel] = Field(default_factory=list, alias="condition", description="A reference to an invariant that may make additional statements about the cardinality or value in the instance.") + constraint_field: List[ElementDefinition_ConstraintModel] = Field(default_factory=list, alias="constraint", description="Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.") + mustHaveValue_field: booleanModel = Field(default=None, alias="mustHaveValue", description="Specifies for a primitive data type that the value of the data type cannot be replaced by an extension.") + valueAlternatives_field: List[canonicalModel] = Field(default_factory=list, alias="valueAlternatives", description="Specifies a list of extensions that can appear in place of a primitive value.") + mustSupport_field: booleanModel = Field(default=None, alias="mustSupport", description="If true, implementations that produce or consume resources SHALL provide support for the element in some meaningful way. Note that this is being phased out and replaced by obligations (see below). If false, the element may be ignored and not supported. If false, whether to populate or use the data element in any way is at the discretion of the implementation.") + isModifier_field: booleanModel = Field(default=None, alias="isModifier", description="If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. When used on the root element in an extension definition, this indicates whether or not the extension is a modifier extension.") + isModifierReason_field: stringModel = Field(default=None, alias="isModifierReason", description="Explains how that element affects the interpretation of the resource or element that contains it.") + isSummary_field: booleanModel = Field(default=None, alias="isSummary", description="Whether the element should be included if a client requests a search with the parameter _summary=true.") + binding_field: ElementDefinition_BindingModel = Field(default=None, alias="binding", description="Binds to a value set if this element is coded (code, Coding, CodeableConcept, Quantity), or the data types (string, uri).") + mapping_field: List[ElementDefinition_MappingModel] = Field(default_factory=list, alias="mapping", description="Identifies a concept from an external specification that roughly corresponds to this element.") + +class ElementDefinition_SlicingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + discriminator_field: List[ElementDefinition_DiscriminatorModel] = Field(default_factory=list, alias="discriminator", description="Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.") + description_field: stringModel = Field(default=None, alias="description", description="A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.") + ordered_field: booleanModel = Field(default=None, alias="ordered", description="If the matching elements have to occur in the same order as defined in the profile.") + # ElementDefinition_Slicing_rules_field: rulesModel = Field(..., alias="rules", description="Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.") + +class ElementDefinition_DiscriminatorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + # ElementDefinition_Discriminator_type_field: typeModel = Field(..., alias="type", description="How the element value is interpreted when discrimination is evaluated.") + path_field: stringModel = Field(default=None, alias="path", description="A FHIRPath expression, using [the simple subset of FHIRPath](fhirpath.html#simple), that is used to identify the element on which discrimination is based.") + +class ElementDefinition_BaseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base.") + min_field: unsignedIntModel = Field(default=None, alias="min", description="Minimum cardinality of the base element identified by the path.") + max_field: stringModel = Field(default=None, alias="max", description="Maximum cardinality of the base element identified by the path.") + +class ElementDefinition_TypeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: uriModel = Field(default=None, alias="code", description="URL of Data type or Resource that is a(or the) type used for this element. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. string is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models.") + profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="Identifies a profile structure or implementation Guide that applies to the datatype this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the type SHALL conform to at least one profile defined in the implementation guide.") + targetProfile_field: List[canonicalModel] = Field(default_factory=list, alias="targetProfile", description="Used when the type is Reference or canonical, and identifies a profile structure or implementation Guide that applies to the target of the reference this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.") + # ElementDefinition_Type_versioning_field: versioningModel = Field(..., alias="versioning", description="Whether this reference needs to be version specific or version independent, or whether either can be used.") + +class ElementDefinition_ExampleModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + label_field: stringModel = Field(default=None, alias="label", description="Describes the purpose of this example among the set of examples.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The actual value for the element, which must be one of the types allowed for this element.") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The actual value for the element, which must be one of the types allowed for this element.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The actual value for the element, which must be one of the types allowed for this element.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The actual value for the element, which must be one of the types allowed for this element.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The actual value for the element, which must be one of the types allowed for this element.") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The actual value for the element, which must be one of the types allowed for this element.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The actual value for the element, which must be one of the types allowed for this element.") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The actual value for the element, which must be one of the types allowed for this element.") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The actual value for the element, which must be one of the types allowed for this element.") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The actual value for the element, which must be one of the types allowed for this element.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The actual value for the element, which must be one of the types allowed for this element.") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The actual value for the element, which must be one of the types allowed for this element.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The actual value for the element, which must be one of the types allowed for this element.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The actual value for the element, which must be one of the types allowed for this element.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The actual value for the element, which must be one of the types allowed for this element.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The actual value for the element, which must be one of the types allowed for this element.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The actual value for the element, which must be one of the types allowed for this element.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The actual value for the element, which must be one of the types allowed for this element.") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The actual value for the element, which must be one of the types allowed for this element.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The actual value for the element, which must be one of the types allowed for this element.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The actual value for the element, which must be one of the types allowed for this element.") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The actual value for the element, which must be one of the types allowed for this element.") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The actual value for the element, which must be one of the types allowed for this element.") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The actual value for the element, which must be one of the types allowed for this element.") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The actual value for the element, which must be one of the types allowed for this element.") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The actual value for the element, which must be one of the types allowed for this element.") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The actual value for the element, which must be one of the types allowed for this element.") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The actual value for the element, which must be one of the types allowed for this element.") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The actual value for the element, which must be one of the types allowed for this element.") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The actual value for the element, which must be one of the types allowed for this element.") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The actual value for the element, which must be one of the types allowed for this element.") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The actual value for the element, which must be one of the types allowed for this element.") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The actual value for the element, which must be one of the types allowed for this element.") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The actual value for the element, which must be one of the types allowed for this element.") + +class ElementDefinition_ConstraintModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + key_field: idModel = Field(default=None, alias="key", description="Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.") + requirements_field: markdownModel = Field(default=None, alias="requirements", description="Description of why this constraint is necessary or appropriate.") + # ElementDefinition_Constraint_severity_field: severityModel = Field(..., alias="severity", description="Identifies the impact constraint violation has on the conformance of the instance.") + suppress_field: booleanModel = Field(default=None, alias="suppress", description="If true, indicates that the warning or best practice guideline should be suppressed.") + human_field: stringModel = Field(default=None, alias="human", description="Text that can be used to describe the constraint in messages identifying that the constraint has been violated.") + expression_field: stringModel = Field(default=None, alias="expression", description="A [FHIRPath](fhirpath.html) expression of constraint that can be executed to see if this constraint is met.") + source_field: canonicalModel = Field(default=None, alias="source", description="A reference to the original source of the constraint, for traceability purposes.") + +class ElementDefinition_BindingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + # ElementDefinition_Binding_strength_field: strengthModel = Field(..., alias="strength", description="Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.") + description_field: markdownModel = Field(default=None, alias="description", description="Describes the intended use of this particular set of codes.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="Refers to the value set that identifies the set of codes the binding refers to.") + additional_field: List[ElementDefinition_AdditionalModel] = Field(default_factory=list, alias="additional", description="Additional bindings that help applications implementing this element. Additional bindings do not replace the main binding but provide more information and/or context.") + +class ElementDefinition_AdditionalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + purpose_field: codeModel = Field(default=None, alias="purpose", description="The use of this additional binding.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The valueSet that is being bound for the purpose.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation of the purpose of use of the bindingproviding additional information about how it is intended to be used.") + shortDoco_field: stringModel = Field(default=None, alias="shortDoco", description="Concise documentation - for summary tables.") + usage_field: List[UsageContextModel] = Field(default_factory=list, alias="usage", description="Qualifies the usage of the binding. Typically bindings are qualified by jurisdiction, but they may also be qualified by gender, workflow status, clinical domain etc. The information to decide whether a usege context applies is usually outside the resource, determined by context, and this might present challenges for validation tooling.") + any_field: booleanModel = Field(default=None, alias="any", description="Whether the binding applies to all repeats, or just to any one of them. This is only relevant for elements that can repeat.") + +class ElementDefinition_MappingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identity_field: idModel = Field(default=None, alias="identity", description="An internal reference to the definition of a mapping.") + language_field: codeModel = Field(default=None, alias="language", description="Identifies the computable language in which mapping.map is expressed.") + map_field: stringModel = Field(default=None, alias="map", description="Expresses what part of the target specification corresponds to this element.") + comment_field: markdownModel = Field(default=None, alias="comment", description="Comments that provide information about the mapping or its use.") + +class AccountModel(BaseModel): + resourceType_field: str = "Account" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier used to reference the account. Might or might not be intended for human use (e.g. credit card number).") + status_field: codeModel = Field(default=None, alias="status", description="Indicates whether the account is presently used/usable or not.") + billingStatus_field: CodeableConceptModel = Field(default=None, alias="billingStatus", description="The BillingStatus tracks the lifecycle of the account through the billing process. It indicates how transactions are treated when they are allocated to the account.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Categorizes the account for reporting and searching purposes.") + name_field: stringModel = Field(default=None, alias="name", description="Name used for the account when displaying it to humans in reports, etc.") + subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="Identifies the entity which incurs the expenses. While the immediate recipients of services or goods might be entities related to the subject, the expenses were ultimately incurred by the subject of the Account.") + servicePeriod_field: PeriodModel = Field(default=None, alias="servicePeriod", description="The date range of services associated with this account.") + coverage_field: List[Account_CoverageModel] = Field(default_factory=list, alias="coverage", description="The party(s) that are responsible for covering the payment of this account, and what order should they be applied to the account.") + owner_field: ReferenceModel = Field(default=None, alias="owner", description="Indicates the service area, hospital, department, etc. with responsibility for managing the Account.") + description_field: markdownModel = Field(default=None, alias="description", description="Provides additional information about what the account tracks and how it is used.") + guarantor_field: List[Account_GuarantorModel] = Field(default_factory=list, alias="guarantor", description="The parties responsible for balancing the account if other payment options fall short.") + diagnosis_field: List[Account_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="When using an account for billing a specific Encounter the set of diagnoses that are relevant for billing are stored here on the account where they are able to be sequenced appropriately prior to processing to produce claim(s).") + procedure_field: List[Account_ProcedureModel] = Field(default_factory=list, alias="procedure", description="When using an account for billing a specific Encounter the set of procedures that are relevant for billing are stored here on the account where they are able to be sequenced appropriately prior to processing to produce claim(s).") + relatedAccount_field: List[Account_RelatedAccountModel] = Field(default_factory=list, alias="relatedAccount", description="Other associated accounts related to this account.") + currency_field: CodeableConceptModel = Field(default=None, alias="currency", description="The default currency for the account.") + balance_field: List[Account_BalanceModel] = Field(default_factory=list, alias="balance", description="The calculated account balances - these are calculated and processed by the finance system.") + calculatedAt_field: instantModel = Field(default=None, alias="calculatedAt", description="Time the balance amount was calculated.") + +class Account_CoverageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="The party(s) that contribute to payment (or part of) of the charges applied to this account (including self-pay).") + priority_field: positiveIntModel = Field(default=None, alias="priority", description="The priority of the coverage in the context of this account.") + +class Account_GuarantorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + party_field: ReferenceModel = Field(default=None, alias="party", description="The entity who is responsible.") + onHold_field: booleanModel = Field(default=None, alias="onHold", description="A guarantor may be placed on credit hold or otherwise have their role temporarily suspended.") + period_field: PeriodModel = Field(default=None, alias="period", description="The timeframe during which the guarantor accepts responsibility for the account.") + +class Account_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="Ranking of the diagnosis (for each type).") + condition_field: CodeableReferenceModel = Field(default=None, alias="condition", description="The diagnosis relevant to the account.") + dateOfDiagnosis_field: dateTimeModel = Field(default=None, alias="dateOfDiagnosis", description="Ranking of the diagnosis (for each type).") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Type that this diagnosis has relevant to the account (e.g. admission, billing, discharge …).") + onAdmission_field: booleanModel = Field(default=None, alias="onAdmission", description="Was the Diagnosis present on Admission in the related Encounter.") + packageCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="packageCode", description="The package code can be used to group diagnoses that may be priced or delivered as a single product. Such as DRGs.") + +class Account_ProcedureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="Ranking of the procedure (for each type).") + code_field: CodeableReferenceModel = Field(default=None, alias="code", description="The procedure relevant to the account.") + dateOfService_field: dateTimeModel = Field(default=None, alias="dateOfService", description="Date of the procedure when using a coded procedure. If using a reference to a procedure, then the date on the procedure should be used.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="How this procedure value should be used in charging the account.") + packageCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="packageCode", description="The package code can be used to group procedures that may be priced or delivered as a single product. Such as DRGs.") + device_field: List[ReferenceModel] = Field(default_factory=list, alias="device", description="Any devices that were associated with the procedure relevant to the account.") + +class Account_RelatedAccountModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="Relationship of the associated Account.") + account_field: ReferenceModel = Field(default=None, alias="account", description="Reference to an associated Account.") + +class Account_BalanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + aggregate_field: CodeableConceptModel = Field(default=None, alias="aggregate", description="Who is expected to pay this part of the balance.") + term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term of the account balances - The balance value is the amount that was outstanding for this age.") + estimate_field: booleanModel = Field(default=None, alias="estimate", description="The amount is only an estimated value - this is likely common for `current` term balances, but not with known terms (that were generated by a backend process).") + amount_field: MoneyModel = Field(default=None, alias="amount", description="The actual balance value calculated for the age defined in the term property.") + +class ActivityDefinitionModel(BaseModel): + resourceType_field: str = "ActivityDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this activity definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this activity definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the activity definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this activity definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the activity definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the activity definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the activity definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the activity definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this activity definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this activity definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the activity definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the activity definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the activity definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the activity definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate activity definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the activity definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this activity definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the activity definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the activity definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the activity definition content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the activity. Topics provide a high-level categorization of the activity that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the activity definition giving additional information about its content.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the activity being defined. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the activity being defined. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") + usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the activity definition is used from a clinical perspective.") + library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing any formal logic used by the activity definition.") + kind_field: codeModel = Field(default=None, alias="kind", description="A description of the kind of resource the activity definition is representing. For example, a MedicationRequest, a ServiceRequest, or a CommunicationRequest.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="A profile to which the target of the activity definition is expected to conform.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Detailed description of the type of activity; e.g. What lab test, what procedure, what kind of encounter.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the activity and where the request should fit into the workflow chain.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the activity should be addressed with respect to other requests.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="Set this to true if the definition is to indicate that a particular activity should NOT be performed. If true, this element should be interpreted to reinforce a negative coding. For example NPO as a code with a doNotPerform of true would still indicate to NOT perform the action.") + timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="The timing or frequency upon which the described activity is to occur.") + timingAge_field: AgeModel = Field(default=None, alias="timingAge", description="The timing or frequency upon which the described activity is to occur.") + timingRange_field: RangeModel = Field(default=None, alias="timingRange", description="The timing or frequency upon which the described activity is to occur.") + timingDuration_field: DurationModel = Field(default=None, alias="timingDuration", description="The timing or frequency upon which the described activity is to occur.") + asNeededCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="asNeededCodeableConcept", description="If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example pain, on flare-up, etc.") + location_field: CodeableReferenceModel = Field(default=None, alias="location", description="Identifies the facility where the activity will occur; e.g. home, hospital, specific clinic, etc.") + participant_field: List[ActivityDefinition_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who should participate in performing the action described.") + productReference_field: ReferenceModel = Field(default=None, alias="productReference", description="Identifies the food, drug or other product being consumed or supplied in the activity.") + productCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="productCodeableConcept", description="Identifies the food, drug or other product being consumed or supplied in the activity.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Identifies the quantity expected to be consumed at once (per dose, per meal, etc.).") + dosage_field: List[DosageModel] = Field(default_factory=list, alias="dosage", description="Provides detailed dosage instructions in the same way that they are described for MedicationRequest resources.") + bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="Indicates the sites on the subject's body where the procedure should be performed (I.e. the target sites).") + specimenRequirement_field: List[canonicalModel] = Field(default_factory=list, alias="specimenRequirement", description="Defines specimen requirements for the action to be performed, such as required specimens for a lab test.") + observationRequirement_field: List[canonicalModel] = Field(default_factory=list, alias="observationRequirement", description="Defines observation requirements for the action to be performed, such as body weight or surface area.") + observationResultRequirement_field: List[canonicalModel] = Field(default_factory=list, alias="observationResultRequirement", description="Defines the observations that are expected to be produced by the action.") + transform_field: canonicalModel = Field(default=None, alias="transform", description="A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.") + dynamicValue_field: List[ActivityDefinition_DynamicValueModel] = Field(default_factory=list, alias="dynamicValue", description="Dynamic values that will be evaluated to produce values for elements of the resulting resource. For example, if the dosage of a medication must be computed based on the patient's weight, a dynamic value would be used to specify an expression that calculated the weight, and the path on the request resource that would contain the result.") + +class ActivityDefinition_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") + typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") + typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Indicates how the actor will be involved in the action - author, reviewer, witness, etc.") + +class ActivityDefinition_DynamicValueModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression specifying the value of the customized element.") + +class ActorDefinitionModel(BaseModel): + resourceType_field: str = "ActorDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this actor definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this actor definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the actor definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this actor definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the actor definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the actor definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the actor definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the actor definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this actor definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this actor definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the actor definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the actor definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the actor definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the actor.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate actor definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the actor definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this actor definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the actor definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the actor definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + type_field: codeModel = Field(default=None, alias="type", description="Whether the actor represents a human or an appliction.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation about the functionality of the actor.") + reference_field: List[urlModel] = Field(default_factory=list, alias="reference", description="A reference to additional documentation about the actor, but description and documentation.") + capabilities_field: canonicalModel = Field(default=None, alias="capabilities", description="The capability statement for the actor (if the concept is applicable).") + derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="A url that identifies the definition of this actor in another IG (which IG must be listed in the dependencies). This actor inherits all the obligations etc. as defined in the other IG.") + +class AdministrableProductDefinitionModel(BaseModel): + resourceType_field: str = "AdministrableProductDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier for the administrable product.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this administrable product. Enables tracking the life-cycle of the content.") + formOf_field: List[ReferenceModel] = Field(default_factory=list, alias="formOf", description="References a product from which one or more of the constituent parts of that product can be prepared and used as described by this administrable product. If this administrable product describes the administration of a crushed tablet, the 'formOf' would be the product representing a distribution containing tablets and possibly also a cream. This is distinct from the 'producedFrom' which refers to the specific components of the product that are used in this preparation, rather than the product as a whole.") + administrableDoseForm_field: CodeableConceptModel = Field(default=None, alias="administrableDoseForm", description="The dose form of the final product after necessary reconstitution or processing. Contrasts to the manufactured dose form (see ManufacturedItemDefinition). If the manufactured form was 'powder for solution for injection', the administrable dose form could be 'solution for injection' (once mixed with another item having manufactured form 'solvent for solution for injection').") + unitOfPresentation_field: CodeableConceptModel = Field(default=None, alias="unitOfPresentation", description="The presentation type in which this item is given to a patient. e.g. for a spray - 'puff' (as in 'contains 100 mcg per puff'), or for a liquid - 'vial' (as in 'contains 5 ml per vial').") + producedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="producedFrom", description="Indicates the specific manufactured items that are part of the 'formOf' product that are used in the preparation of this specific administrable form. In some cases, an administrable form might use all of the items from the overall product (or there might only be one item), while in other cases, an administrable form might use only a subset of the items available in the overall product. For example, an administrable form might involve combining a liquid and a powder available as part of an overall product, but not involve applying the also supplied cream.") + ingredient_field: List[CodeableConceptModel] = Field(default_factory=list, alias="ingredient", description="The ingredients of this administrable medicinal product. This is only needed if the ingredients are not specified either using ManufacturedItemDefiniton (via AdministrableProductDefinition.producedFrom) to state which component items are used to make this, or using by incoming references from the Ingredient resource, to state in detail which substances exist within this. This element allows a basic coded ingredient to be used.") + device_field: ReferenceModel = Field(default=None, alias="device", description="A device that is integral to the medicinal product, in effect being considered as an ingredient of the medicinal product. This is not intended for devices that are just co-packaged.") + description_field: markdownModel = Field(default=None, alias="description", description="A general description of the product, when in its final form, suitable for administration e.g. effervescent blue liquid, to be swallowed. Intended to be used when the other structured properties of this resource are insufficient or cannot be supported. It is not intended to duplicate information already carried elswehere.") + property_field: List[AdministrableProductDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="Characteristics e.g. a product's onset of action.") + routeOfAdministration_field: List[AdministrableProductDefinition_RouteOfAdministrationModel] = Field(default_factory=list, alias="routeOfAdministration", description="The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. RouteOfAdministration cannot be used when the 'formOf' product already uses MedicinalProductDefinition.route (and vice versa).") + +class AdministrableProductDefinition_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A value for the characteristic.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status of characteristic e.g. assigned or pending.") + +class AdministrableProductDefinition_RouteOfAdministrationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded expression for the route.") + firstDose_field: QuantityModel = Field(default=None, alias="firstDose", description="The first dose (dose quantity) administered can be specified for the product, using a numerical value and its unit of measurement.") + maxSingleDose_field: QuantityModel = Field(default=None, alias="maxSingleDose", description="The maximum single dose that can be administered, specified using a numerical value and its unit of measurement.") + maxDosePerDay_field: QuantityModel = Field(default=None, alias="maxDosePerDay", description="The maximum dose per day (maximum dose quantity to be administered in any one 24-h period) that can be administered.") + maxDosePerTreatmentPeriod_field: RatioModel = Field(default=None, alias="maxDosePerTreatmentPeriod", description="The maximum dose per treatment period that can be administered.") + maxTreatmentPeriod_field: DurationModel = Field(default=None, alias="maxTreatmentPeriod", description="The maximum treatment period during which the product can be administered.") + targetSpecies_field: List[AdministrableProductDefinition_TargetSpeciesModel] = Field(default_factory=list, alias="targetSpecies", description="A species for which this route applies.") + +class AdministrableProductDefinition_TargetSpeciesModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded expression for the species.") + withdrawalPeriod_field: List[AdministrableProductDefinition_WithdrawalPeriodModel] = Field(default_factory=list, alias="withdrawalPeriod", description="A species specific time during which consumption of animal product is not appropriate.") + +class AdministrableProductDefinition_WithdrawalPeriodModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + tissue_field: CodeableConceptModel = Field(default=None, alias="tissue", description="Coded expression for the type of tissue for which the withdrawal period applies, e.g. meat, milk.") + value_field: QuantityModel = Field(default=None, alias="value", description="A value for the time.") + supportingInformation_field: stringModel = Field(default=None, alias="supportingInformation", description="Extra information about the withdrawal period.") + +class AdverseEventModel(BaseModel): + resourceType_field: str = "AdverseEvent" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this adverse event by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the adverse event or potential adverse event.") + actuality_field: codeModel = Field(default=None, alias="actuality", description="Whether the event actually happened or was a near miss. Note that this is independent of whether anyone was affected or harmed or how severely.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The overall type of event, intended for search and filtering purposes.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Specific event that occurred or that was averted, such as patient fall, wrong organ removed, or wrong blood transfused.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="This subject or group impacted by the event.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter associated with the start of the AdverseEvent.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date (and perhaps time) when the adverse event occurred.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The date (and perhaps time) when the adverse event occurred.") + detected_field: dateTimeModel = Field(default=None, alias="detected", description="Estimated or actual date the AdverseEvent began, in the opinion of the reporter.") + recordedDate_field: dateTimeModel = Field(default=None, alias="recordedDate", description="The date on which the existence of the AdverseEvent was first recorded.") + resultingEffect_field: List[ReferenceModel] = Field(default_factory=list, alias="resultingEffect", description="Information about the condition that occurred as a result of the adverse event, such as hives due to the exposure to a substance (for example, a drug or a chemical) or a broken leg as a result of the fall.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The information about where the adverse event occurred.") + seriousness_field: CodeableConceptModel = Field(default=None, alias="seriousness", description="Assessment whether this event, or averted event, was of clinical importance.") + outcome_field: List[CodeableConceptModel] = Field(default_factory=list, alias="outcome", description="Describes the type of outcome from the adverse event, such as resolved, recovering, ongoing, resolved-with-sequelae, or fatal.") + recorder_field: ReferenceModel = Field(default=None, alias="recorder", description="Information on who recorded the adverse event. May be the patient or a practitioner.") + participant_field: List[AdverseEvent_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the adverse event and how they were involved.") + study_field: List[ReferenceModel] = Field(default_factory=list, alias="study", description="The research study that the subject is enrolled in.") + expectedInResearchStudy_field: booleanModel = Field(default=None, alias="expectedInResearchStudy", description="Considered likely or probable or anticipated in the research study. Whether the reported event matches any of the outcomes for the patient that are considered by the study as known or likely.") + suspectEntity_field: List[AdverseEvent_SuspectEntityModel] = Field(default_factory=list, alias="suspectEntity", description="Describes the entity that is suspected to have caused the adverse event.") + contributingFactor_field: List[AdverseEvent_ContributingFactorModel] = Field(default_factory=list, alias="contributingFactor", description="The contributing factors suspected to have increased the probability or severity of the adverse event.") + preventiveAction_field: List[AdverseEvent_PreventiveActionModel] = Field(default_factory=list, alias="preventiveAction", description="Preventive actions that contributed to avoiding the adverse event.") + mitigatingAction_field: List[AdverseEvent_MitigatingActionModel] = Field(default_factory=list, alias="mitigatingAction", description="The ameliorating action taken after the adverse event occured in order to reduce the extent of harm.") + supportingInfo_field: List[AdverseEvent_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Supporting information relevant to the event.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the adverse event by the performer, subject or other participants.") + +class AdverseEvent_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the adverse event, such as contributor or informant.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the event.") + +class AdverseEvent_SuspectEntityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + instanceCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="instanceCodeableConcept", description="Identifies the actual instance of what caused the adverse event. May be a substance, medication, medication administration, medication statement or a device.") + instanceReference_field: ReferenceModel = Field(default=None, alias="instanceReference", description="Identifies the actual instance of what caused the adverse event. May be a substance, medication, medication administration, medication statement or a device.") + causality_field: AdverseEvent_CausalityModel = Field(default=None, alias="causality", description="Information on the possible cause of the event.") + +class AdverseEvent_CausalityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + assessmentMethod_field: CodeableConceptModel = Field(default=None, alias="assessmentMethod", description="The method of evaluating the relatedness of the suspected entity to the event.") + entityRelatedness_field: CodeableConceptModel = Field(default=None, alias="entityRelatedness", description="The result of the assessment regarding the relatedness of the suspected entity to the event.") + author_field: ReferenceModel = Field(default=None, alias="author", description="The author of the information on the possible cause of the event.") + +class AdverseEvent_ContributingFactorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The item that is suspected to have increased the probability or severity of the adverse event.") + itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The item that is suspected to have increased the probability or severity of the adverse event.") + +class AdverseEvent_PreventiveActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The action that contributed to avoiding the adverse event.") + itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The action that contributed to avoiding the adverse event.") + +class AdverseEvent_MitigatingActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The ameliorating action taken after the adverse event occured in order to reduce the extent of harm.") + itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The ameliorating action taken after the adverse event occured in order to reduce the extent of harm.") + +class AdverseEvent_SupportingInfoModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="Relevant past history for the subject. In a clinical care context, an example being a patient had an adverse event following a pencillin administration and the patient had a previously documented penicillin allergy. In a clinical trials context, an example is a bunion or rash that was present prior to the study. Additionally, the supporting item can be a document that is relevant to this instance of the adverse event that is not part of the subject's medical history. For example, a clinical note, staff list, or material safety data sheet (MSDS). Supporting information is not a contributing factor, preventive action, or mitigating action.") + itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="Relevant past history for the subject. In a clinical care context, an example being a patient had an adverse event following a pencillin administration and the patient had a previously documented penicillin allergy. In a clinical trials context, an example is a bunion or rash that was present prior to the study. Additionally, the supporting item can be a document that is relevant to this instance of the adverse event that is not part of the subject's medical history. For example, a clinical note, staff list, or material safety data sheet (MSDS). Supporting information is not a contributing factor, preventive action, or mitigating action.") + +class AllergyIntoleranceModel(BaseModel): + resourceType_field: str = "AllergyIntolerance" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + clinicalStatus_field: CodeableConceptModel = Field(default=None, alias="clinicalStatus", description="The clinical status of the allergy or intolerance.") + verificationStatus_field: CodeableConceptModel = Field(default=None, alias="verificationStatus", description="Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product). The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identification of the underlying physiological mechanism for the reaction risk.") + category_field: List[codeModel] = Field(default_factory=list, alias="category", description="Category of the identified substance.") + criticality_field: codeModel = Field(default=None, alias="criticality", description="Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for an allergy or intolerance statement (either a positive or a negated/excluded statement). This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., Latex), an allergy or intolerance condition (e.g., Latex allergy), or a negated/excluded code for a specific substance or class (e.g., No latex allergy) or a general or categorical negated statement (e.g., No known allergy, No known drug allergies). Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who has the allergy or intolerance.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter when the allergy or intolerance was asserted.") + onsetAge_field: AgeModel = Field(default=None, alias="onsetAge", description="Estimated or actual date, date-time, or age when allergy or intolerance was identified.") + onsetPeriod_field: PeriodModel = Field(default=None, alias="onsetPeriod", description="Estimated or actual date, date-time, or age when allergy or intolerance was identified.") + onsetRange_field: RangeModel = Field(default=None, alias="onsetRange", description="Estimated or actual date, date-time, or age when allergy or intolerance was identified.") + recordedDate_field: dateTimeModel = Field(default=None, alias="recordedDate", description="The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.") + participant_field: List[AllergyIntolerance_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved.") + lastOccurrence_field: dateTimeModel = Field(default=None, alias="lastOccurrence", description="Represents the date and/or time of the last known occurrence of a reaction event.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.") + reaction_field: List[AllergyIntolerance_ReactionModel] = Field(default_factory=list, alias="reaction", description="Details about each adverse reaction event linked to exposure to the identified substance.") + +class AllergyIntolerance_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the activities related to the allergy or intolerance.") + +class AllergyIntolerance_ReactionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + substance_field: CodeableConceptModel = Field(default=None, alias="substance", description="Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.") + manifestation_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="manifestation", description="Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.") + description_field: stringModel = Field(default=None, alias="description", description="Text description about the reaction as a whole, including details of the manifestation if required.") + onset_field: dateTimeModel = Field(default=None, alias="onset", description="Record of the date and/or time of the onset of the Reaction.") + severity_field: codeModel = Field(default=None, alias="severity", description="Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.") + exposureRoute_field: CodeableConceptModel = Field(default=None, alias="exposureRoute", description="Identification of the route by which the subject was exposed to the substance.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional text about the adverse reaction event not captured in other fields.") + +class AppointmentModel(BaseModel): + resourceType_field: str = "Appointment" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).") + status_field: codeModel = Field(default=None, alias="status", description="The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.") + cancellationReason_field: CodeableConceptModel = Field(default=None, alias="cancellationReason", description="The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply.") + class_field: List[CodeableConceptModel] = Field(default_factory=list, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") + serviceCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceCategory", description="A broad categorization of the service that is to be performed during this appointment.") + serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="The specific service that is to be performed during this appointment.") + specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment.") + appointmentType_field: CodeableConceptModel = Field(default=None, alias="appointmentType", description="The style of appointment or patient that has been booked in the slot (not service type).") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority).") + description_field: stringModel = Field(default=None, alias="description", description="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the note field.") + replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource).") + virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. conference call).") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information to support the appointment provided when making the appointment.") + previousAppointment_field: ReferenceModel = Field(default=None, alias="previousAppointment", description="The previous appointment in a series of related appointments.") + originatingAppointment_field: ReferenceModel = Field(default=None, alias="originatingAppointment", description="The originating appointment in a recurring set of related appointments.") + start_field: instantModel = Field(default=None, alias="start", description="Date/Time that the appointment is to take place.") + end_field: instantModel = Field(default=None, alias="end", description="Date/Time that the appointment is to conclude.") + minutesDuration_field: positiveIntModel = Field(default=None, alias="minutesDuration", description="Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end.") + requestedPeriod_field: List[PeriodModel] = Field(default_factory=list, alias="requestedPeriod", description="A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.") + slot_field: List[ReferenceModel] = Field(default_factory=list, alias="slot", description="The slots from the participants' schedules that will be filled by the appointment.") + account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that is expected to be used for billing the activities that result from this Appointment.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment.") + cancellationDate_field: dateTimeModel = Field(default=None, alias="cancellationDate", description="The date/time describing when the appointment was cancelled.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes/comments about the appointment.") + patientInstruction_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="patientInstruction", description="While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before).") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The request this appointment is allocated to assess (e.g. incoming referral or procedure request).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element.") + participant_field: List[Appointment_ParticipantModel] = Field(default_factory=list, alias="participant", description="List of participants involved in the appointment.") + recurrenceId_field: positiveIntModel = Field(default=None, alias="recurrenceId", description="The sequence number that identifies a specific appointment in a recurring pattern.") + occurrenceChanged_field: booleanModel = Field(default=None, alias="occurrenceChanged", description="This appointment varies from the recurring pattern.") + recurrenceTemplate_field: List[Appointment_RecurrenceTemplateModel] = Field(default_factory=list, alias="recurrenceTemplate", description="The details of the recurrence pattern or template that is used to generate recurring appointments.") + +class Appointment_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Role of participant in the appointment.") + period_field: PeriodModel = Field(default=None, alias="period", description="Participation period of the actor.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The individual, device, location, or service participating in the appointment.") + required_field: booleanModel = Field(default=None, alias="required", description="Whether this participant is required to be present at the meeting. If false, the participant is optional.") + status_field: codeModel = Field(default=None, alias="status", description="Participation status of the actor.") + +class Appointment_RecurrenceTemplateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + timezone_field: CodeableConceptModel = Field(default=None, alias="timezone", description="The timezone of the recurring appointment occurrences.") + recurrenceType_field: CodeableConceptModel = Field(default=None, alias="recurrenceType", description="How often the appointment series should recur.") + lastOccurrenceDate_field: dateModel = Field(default=None, alias="lastOccurrenceDate", description="Recurring appointments will not occur after this date.") + occurrenceCount_field: positiveIntModel = Field(default=None, alias="occurrenceCount", description="How many appointments are planned in the recurrence.") + occurrenceDate_field: List[dateModel] = Field(default_factory=list, alias="occurrenceDate", description="The list of specific dates that will have appointments generated.") + weeklyTemplate_field: Appointment_WeeklyTemplateModel = Field(default=None, alias="weeklyTemplate", description="Information about weekly recurring appointments.") + monthlyTemplate_field: Appointment_MonthlyTemplateModel = Field(default=None, alias="monthlyTemplate", description="Information about monthly recurring appointments.") + yearlyTemplate_field: Appointment_YearlyTemplateModel = Field(default=None, alias="yearlyTemplate", description="Information about yearly recurring appointments.") + excludingDate_field: List[dateModel] = Field(default_factory=list, alias="excludingDate", description="Any dates, such as holidays, that should be excluded from the recurrence.") + excludingRecurrenceId_field: List[positiveIntModel] = Field(default_factory=list, alias="excludingRecurrenceId", description="Any dates, such as holidays, that should be excluded from the recurrence.") + +class Appointment_WeeklyTemplateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + monday_field: booleanModel = Field(default=None, alias="monday", description="Indicates that recurring appointments should occur on Mondays.") + tuesday_field: booleanModel = Field(default=None, alias="tuesday", description="Indicates that recurring appointments should occur on Tuesdays.") + wednesday_field: booleanModel = Field(default=None, alias="wednesday", description="Indicates that recurring appointments should occur on Wednesdays.") + thursday_field: booleanModel = Field(default=None, alias="thursday", description="Indicates that recurring appointments should occur on Thursdays.") + friday_field: booleanModel = Field(default=None, alias="friday", description="Indicates that recurring appointments should occur on Fridays.") + saturday_field: booleanModel = Field(default=None, alias="saturday", description="Indicates that recurring appointments should occur on Saturdays.") + sunday_field: booleanModel = Field(default=None, alias="sunday", description="Indicates that recurring appointments should occur on Sundays.") + weekInterval_field: positiveIntModel = Field(default=None, alias="weekInterval", description="The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.") + +class Appointment_MonthlyTemplateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + dayOfMonth_field: positiveIntModel = Field(default=None, alias="dayOfMonth", description="Indicates that appointments in the series of recurring appointments should occur on a specific day of the month.") + nthWeekOfMonth_field: CodingModel = Field(default=None, alias="nthWeekOfMonth", description="Indicates which week within a month the appointments in the series of recurring appointments should occur on.") + dayOfWeek_field: CodingModel = Field(default=None, alias="dayOfWeek", description="Indicates which day of the week the recurring appointments should occur each nth week.") + monthInterval_field: positiveIntModel = Field(default=None, alias="monthInterval", description="Indicates that recurring appointments should occur every nth month.") + +class Appointment_YearlyTemplateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + yearInterval_field: positiveIntModel = Field(default=None, alias="yearInterval", description="Appointment recurs every nth year.") + +class AppointmentResponseModel(BaseModel): + resourceType_field: str = "AppointmentResponse" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate.") + appointment_field: ReferenceModel = Field(default=None, alias="appointment", description="Appointment that this response is replying to.") + proposedNewTime_field: booleanModel = Field(default=None, alias="proposedNewTime", description="Indicates that the response is proposing a different time that was initially requested. The new proposed time will be indicated in the start and end properties.") + start_field: instantModel = Field(default=None, alias="start", description="Date/Time that the appointment is to take place, or requested new start time.") + end_field: instantModel = Field(default=None, alias="end", description="This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.") + participantType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="participantType", description="Role of participant in the appointment.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="A Person, Location, HealthcareService, or Device that is participating in the appointment.") + participantStatus_field: codeModel = Field(default=None, alias="participantStatus", description="Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.") + comment_field: markdownModel = Field(default=None, alias="comment", description="Additional comments about the appointment.") + recurring_field: booleanModel = Field(default=None, alias="recurring", description="Indicates that this AppointmentResponse applies to all occurrences in a recurring request.") + occurrenceDate_field: dateModel = Field(default=None, alias="occurrenceDate", description="The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).") + recurrenceId_field: positiveIntModel = Field(default=None, alias="recurrenceId", description="The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.") + +class ArtifactAssessmentModel(BaseModel): + resourceType_field: str = "ArtifactAssessment" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this artifact assessment when it is represented in other formats, or referenced in a specification, model, design or an instance.") + title_field: stringModel = Field(default=None, alias="title", description="A short title for the assessment for use in displaying and selecting.") + citeAsReference_field: ReferenceModel = Field(default=None, alias="citeAsReference", description="Display of or reference to the bibliographic citation of the comment, classifier, or rating.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the artifact assessment was published. The date must change when the disposition changes and it must change if the workflow status code changes. In addition, it should change when the substantive content of the artifact assessment changes.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the artifact assessment and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the artifact assessment.") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + artifactReference_field: ReferenceModel = Field(default=None, alias="artifactReference", description="A reference to a resource, canonical resource, or non-FHIR resource which the comment or assessment is about.") + content_field: List[ArtifactAssessment_ContentModel] = Field(default_factory=list, alias="content", description="A component comment, classifier, or rating of the artifact.") + workflowStatus_field: codeModel = Field(default=None, alias="workflowStatus", description="Indicates the workflow status of the comment or change request.") + disposition_field: codeModel = Field(default=None, alias="disposition", description="Indicates the disposition of the responsible party to the comment or change request.") + +class ArtifactAssessment_ContentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + informationType_field: codeModel = Field(default=None, alias="informationType", description="The type of information this component of the content represents.") + summary_field: markdownModel = Field(default=None, alias="summary", description="A brief summary of the content of this component.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates what type of content this component represents.") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Represents a rating, classifier, or assessment of the artifact.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="A quantitative rating of the artifact.") + author_field: ReferenceModel = Field(default=None, alias="author", description="Indicates who or what authored the content.") + path_field: List[uriModel] = Field(default_factory=list, alias="path", description="A URI that points to what the comment is about, such as a line of text in the CQL, or a specific element in a resource.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Additional related artifacts that provide supporting documentation, additional evidence, or further information related to the content.") + freeToShare_field: booleanModel = Field(default=None, alias="freeToShare", description="Acceptable to publicly share the comment, classifier or rating.") + component_field: List[ArtifactAssessment_ContentModel] = Field(default_factory=list, alias="component", description="If the informationType is container, the components of the content.") + +class AuditEventModel(BaseModel): + resourceType_field: str = "AuditEvent" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Classification of the type of event.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what happened. The most specific code for the event.") + action_field: codeModel = Field(default=None, alias="action", description="Indicator for type of action performed during the event that generated the audit.") + severity_field: codeModel = Field(default=None, alias="severity", description="Indicates and enables segmentation of various severity including debugging from critical.") + occurredPeriod_field: PeriodModel = Field(default=None, alias="occurredPeriod", description="The time or period during which the activity occurred.") + recorded_field: instantModel = Field(default=None, alias="recorded", description="The time when the event was recorded.") + outcome_field: AuditEvent_OutcomeModel = Field(default=None, alias="outcome", description="Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text.") + authorization_field: List[CodeableConceptModel] = Field(default_factory=list, alias="authorization", description="The authorization (e.g., PurposeOfUse) that was used during the event being recorded.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).") + agent_field: List[AuditEvent_AgentModel] = Field(default_factory=list, alias="agent", description="An actor taking an active role in the event or activity that is logged.") + source_field: AuditEvent_SourceModel = Field(default=None, alias="source", description="The actor that is reporting the event.") + entity_field: List[AuditEvent_EntityModel] = Field(default_factory=list, alias="entity", description="Specific instances of data or objects that have been accessed.") + +class AuditEvent_OutcomeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodingModel = Field(default=None, alias="code", description="Indicates whether the event succeeded or failed.") + detail_field: List[CodeableConceptModel] = Field(default_factory=list, alias="detail", description="Additional details about the error. This may be a text description of the error or a system code that identifies the error.") + +class AuditEvent_AgentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The Functional Role of the user when performing the event.") + role_field: List[CodeableConceptModel] = Field(default_factory=list, alias="role", description="The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.") + who_field: ReferenceModel = Field(default=None, alias="who", description="Reference to who this agent is that was involved in the event.") + requestor_field: booleanModel = Field(default=None, alias="requestor", description="Indicator that the user is or is not the requestor, or initiator, for the event being audited.") + location_field: ReferenceModel = Field(default=None, alias="location", description="Where the agent location is known, the agent location when the event occurred.") + policy_field: List[uriModel] = Field(default_factory=list, alias="policy", description="Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.") + networkReference_field: ReferenceModel = Field(default=None, alias="networkReference", description="When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.") + authorization_field: List[CodeableConceptModel] = Field(default_factory=list, alias="authorization", description="The authorization (e.g., PurposeOfUse) that was used during the event being recorded.") + +class AuditEvent_SourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + site_field: ReferenceModel = Field(default=None, alias="site", description="Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group.") + observer_field: ReferenceModel = Field(default=None, alias="observer", description="Identifier of the source where the event was detected.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Code specifying the type of source where event originated.") + +class AuditEvent_EntityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + what_field: ReferenceModel = Field(default=None, alias="what", description="Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Code representing the role the entity played in the event being audited.") + securityLabel_field: List[CodeableConceptModel] = Field(default_factory=list, alias="securityLabel", description="Security labels for the identified entity.") + query_field: stringModel = Field(default=None, alias="query", description="The query parameters for a query-type entities.") + detail_field: List[AuditEvent_DetailModel] = Field(default_factory=list, alias="detail", description="Tagged value pairs for conveying additional information about the entity.") + agent_field: List[AuditEvent_AgentModel] = Field(default_factory=list, alias="agent", description="The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent.") + +class AuditEvent_DetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of extra detail provided in the value.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the extra detail.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the extra detail.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the extra detail.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the extra detail.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the extra detail.") + +class BasicModel(BaseModel): + resourceType_field: str = "Basic" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier assigned to the resource for business purposes, outside the context of FHIR.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identifies the 'type' of resource - equivalent to the resource name for other resources.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient, practitioner, device or any other resource that is the focus of this resource.") + created_field: dateTimeModel = Field(default=None, alias="created", description="Identifies when the resource was first created.") + author_field: ReferenceModel = Field(default=None, alias="author", description="Indicates who was responsible for creating the resource instance.") + +class BinaryModel(BaseModel): + resourceType_field: str = "Binary" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + contentType_field: codeModel = Field(default=None, alias="contentType", description="MimeType of the binary content represented as a standard MimeType (BCP 13).") + securityContext_field: ReferenceModel = Field(default=None, alias="securityContext", description="This element identifies another resource that can be used as a proxy of the security sensitivity to use when deciding and enforcing access control rules for the Binary resource. Given that the Binary resource contains very few elements that can be used to determine the sensitivity of the data and relationships to individuals, the referenced resource stands in as a proxy equivalent for this purpose. This referenced resource may be related to the Binary (e.g. DocumentReference), or may be some non-related Resource purely as a security proxy. E.g. to identify that the binary resource relates to a patient, and access should only be granted to applications that have access to the patient.") + data_field: stringModel = Field(default=None, alias="data", description="The actual content, base64 encoded.") + +class BiologicallyDerivedProductModel(BaseModel): + resourceType_field: str = "BiologicallyDerivedProduct" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + productCategory_field: CodingModel = Field(default=None, alias="productCategory", description="Broad category of this product.") + productCode_field: CodeableConceptModel = Field(default=None, alias="productCode", description="A codified value that systematically supports characterization and classification of medical products of human origin inclusive of processing conditions such as additives, volumes and handling conditions.") + parent_field: List[ReferenceModel] = Field(default_factory=list, alias="parent", description="Parent product (if any) for this biologically-derived product.") + request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request to obtain and/or infuse this biologically derived product.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a biologically derived product. Note: This is a business identifier, not a resource identifier.") + biologicalSourceEvent_field: IdentifierModel = Field(default=None, alias="biologicalSourceEvent", description="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.") + processingFacility_field: List[ReferenceModel] = Field(default_factory=list, alias="processingFacility", description="Processing facilities responsible for the labeling and distribution of this biologically derived product.") + division_field: stringModel = Field(default=None, alias="division", description="A unique identifier for an aliquot of a product. Used to distinguish individual aliquots of a product carrying the same biologicalSource and productCode identifiers.") + productStatus_field: CodingModel = Field(default=None, alias="productStatus", description="Whether the product is currently available.") + expirationDate_field: dateTimeModel = Field(default=None, alias="expirationDate", description="Date, and where relevant time, of expiration.") + collection_field: BiologicallyDerivedProduct_CollectionModel = Field(default=None, alias="collection", description="How this product was collected.") + storageTempRequirements_field: RangeModel = Field(default=None, alias="storageTempRequirements", description="The temperature requirements for storage of the biologically-derived product.") + property_field: List[BiologicallyDerivedProduct_PropertyModel] = Field(default_factory=list, alias="property", description="A property that is specific to this BiologicallyDerviedProduct instance.") + +class BiologicallyDerivedProduct_CollectionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + collector_field: ReferenceModel = Field(default=None, alias="collector", description="Healthcare professional who is performing the collection.") + source_field: ReferenceModel = Field(default=None, alias="source", description="The patient or entity, such as a hospital or vendor in the case of a processed/manipulated/manufactured product, providing the product.") + collectedPeriod_field: PeriodModel = Field(default=None, alias="collectedPeriod", description="Time of product collection.") + +class BiologicallyDerivedProduct_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code that specifies the property. It should reference an established coding system.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Property values.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Property values.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Property values.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Property values.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Property values.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Property values.") + +class BiologicallyDerivedProductDispenseModel(BaseModel): + resourceType_field: str = "BiologicallyDerivedProductDispense" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a biologically derived product dispense. Note: This is a business identifier, not a resource identifier.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The order or request that the dispense is fulfilling. This is a reference to a ServiceRequest resource.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the dispense event.") + originRelationshipType_field: CodeableConceptModel = Field(default=None, alias="originRelationshipType", description="Indicates the relationship between the donor of the biologically derived product and the intended recipient.") + product_field: ReferenceModel = Field(default=None, alias="product", description="A link to a resource identifying the biologically derived product that is being dispensed.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="A link to a resource representing the patient that the product is dispensed for.") + matchStatus_field: CodeableConceptModel = Field(default=None, alias="matchStatus", description="Indicates the type of matching associated with the dispense.") + performer_field: List[BiologicallyDerivedProductDispense_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed an action.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The physical location where the dispense was performed.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of product in the dispense. Quantity will depend on the product being dispensed. Examples are: volume; cell count; concentration.") + preparedDate_field: dateTimeModel = Field(default=None, alias="preparedDate", description="When the product was selected/ matched.") + whenHandedOver_field: dateTimeModel = Field(default=None, alias="whenHandedOver", description="When the product was dispatched for clinical use.") + destination_field: ReferenceModel = Field(default=None, alias="destination", description="Link to a resource identifying the physical location that the product was dispatched to.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes.") + usageInstruction_field: stringModel = Field(default=None, alias="usageInstruction", description="Specific instructions for use.") + +class BiologicallyDerivedProductDispense_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Identifies the function of the performer during the dispense.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Identifies the person responsible for the action.") + +class BodyStructureModel(BaseModel): + resourceType_field: str = "BodyStructure" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for this instance of the anatomical structure.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this body site is in active use.") + morphology_field: CodeableConceptModel = Field(default=None, alias="morphology", description="The kind of structure being represented by the body structure at `BodyStructure.location`. This can define both normal and abnormal morphologies.") + includedStructure_field: List[BodyStructure_IncludedStructureModel] = Field(default_factory=list, alias="includedStructure", description="The anatomical location(s) or region(s) of the specimen, lesion, or body structure.") + excludedStructure_field: List[BodyStructure_IncludedStructureModel] = Field(default_factory=list, alias="excludedStructure", description="The anatomical location(s) or region(s) not occupied or represented by the specimen, lesion, or body structure.") + description_field: markdownModel = Field(default=None, alias="description", description="A summary, characterization or explanation of the body structure.") + image_field: List[AttachmentModel] = Field(default_factory=list, alias="image", description="Image or images used to identify a location.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The person to which the body site belongs.") + +class BodyStructure_IncludedStructureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + structure_field: CodeableConceptModel = Field(default=None, alias="structure", description="Code that represents the included structure.") + laterality_field: CodeableConceptModel = Field(default=None, alias="laterality", description="Code that represents the included structure laterality.") + bodyLandmarkOrientation_field: List[BodyStructure_BodyLandmarkOrientationModel] = Field(default_factory=list, alias="bodyLandmarkOrientation", description="Body locations in relation to a specific body landmark (tatoo, scar, other body structure).") + spatialReference_field: List[ReferenceModel] = Field(default_factory=list, alias="spatialReference", description="XY or XYZ-coordinate orientation for structure.") + qualifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="qualifier", description="Code that represents the included structure qualifier.") + +class BodyStructure_BodyLandmarkOrientationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + landmarkDescription_field: List[CodeableConceptModel] = Field(default_factory=list, alias="landmarkDescription", description="A description of a landmark on the body used as a reference to locate something else.") + clockFacePosition_field: List[CodeableConceptModel] = Field(default_factory=list, alias="clockFacePosition", description="An description of the direction away from a landmark something is located based on a radial clock dial.") + distanceFromLandmark_field: List[BodyStructure_DistanceFromLandmarkModel] = Field(default_factory=list, alias="distanceFromLandmark", description="The distance in centimeters a certain observation is made from a body landmark.") + surfaceOrientation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="surfaceOrientation", description="The surface area a body location is in relation to a landmark.") + +class BodyStructure_DistanceFromLandmarkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + device_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="device", description="An instrument, tool, analyzer, etc. used in the measurement.") + value_field: List[QuantityModel] = Field(default_factory=list, alias="value", description="The measured distance (e.g., in cm) from a body landmark.") + +class BundleModel(BaseModel): + resourceType_field: str = "Bundle" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="A persistent identifier for the bundle that won't change as a bundle is copied from server to server.") + type_field: codeModel = Field(default=None, alias="type", description="Indicates the purpose of this bundle - how it is intended to be used.") + timestamp_field: instantModel = Field(default=None, alias="timestamp", description="The date/time that the bundle was assembled - i.e. when the resources were placed in the bundle.") + total_field: unsignedIntModel = Field(default=None, alias="total", description="If a set of search matches, this is the (potentially estimated) total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle.") + link_field: List[Bundle_LinkModel] = Field(default_factory=list, alias="link", description="A series of links that provide context to this bundle.") + entry_field: List[Bundle_EntryModel] = Field(default_factory=list, alias="entry", description="An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).") + signature_field: SignatureModel = Field(default=None, alias="signature", description="Digital Signature - base64 encoded. XML-DSig or a JWS.") + issues_field: ResourceListModel = Field(default=None, alias="issues", description="Captures issues and warnings that relate to the construction of the Bundle and the content within it.") + +class Bundle_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + relation_field: codeModel = Field(default=None, alias="relation", description="A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1).") + url_field: uriModel = Field(default=None, alias="url", description="The reference details for the link.") + +class Bundle_EntryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + link_field: List[Bundle_LinkModel] = Field(default_factory=list, alias="link", description="A series of links that provide context to this entry.") + fullUrl_field: uriModel = Field(default=None, alias="fullUrl", description="The Absolute URL for the resource. Except for transactions and batches, each entry in a Bundle must have a fullUrl. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. Even when not required, fullUrl MAY be set to a urn:uuid to allow referencing entries in a transaction. The fullUrl can be an arbitrary URI and is not limited to urn:uuid, urn:oid, http, and https. The fullUrl element SHALL have a value except when: ") + resource_field: ResourceListModel = Field(default=None, alias="resource", description="The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type. This is allowed to be a Parameters resource if and only if it is referenced by something else within the Bundle that provides context/meaning.") + search_field: Bundle_SearchModel = Field(default=None, alias="search", description="Information about the search process that lead to the creation of this entry.") + request_field: Bundle_RequestModel = Field(default=None, alias="request", description="Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.") + response_field: Bundle_ResponseModel = Field(default=None, alias="response", description="Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.") + +class Bundle_SearchModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: codeModel = Field(default=None, alias="mode", description="Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.") + score_field: decimalModel = Field(default=None, alias="score", description="When searching, the server's search ranking score for the entry.") + +class Bundle_RequestModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + method_field: codeModel = Field(default=None, alias="method", description="In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred.") + url_field: uriModel = Field(default=None, alias="url", description="The URL for this entry, relative to the root (the address to which the request is posted).") + ifNoneMatch_field: stringModel = Field(default=None, alias="ifNoneMatch", description="If the ETag values match, return a 304 Not Modified status. See the API documentation for [Conditional Read](http.html#cread).") + ifModifiedSince_field: instantModel = Field(default=None, alias="ifModifiedSince", description="Only perform the operation if the last updated date matches. See the API documentation for [Conditional Read](http.html#cread).") + ifMatch_field: stringModel = Field(default=None, alias="ifMatch", description="Only perform the operation if the Etag value matches. For more information, see the API section [Managing Resource Contention](http.html#concurrency).") + ifNoneExist_field: stringModel = Field(default=None, alias="ifNoneExist", description="Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [Conditional Create](http.html#ccreate). This is just the query portion of the URL - what follows the ? (not including the ?).") + +class Bundle_ResponseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + status_field: stringModel = Field(default=None, alias="status", description="The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.") + location_field: uriModel = Field(default=None, alias="location", description="The location header created by processing this operation, populated if the operation returns a location.") + etag_field: stringModel = Field(default=None, alias="etag", description="The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).") + lastModified_field: instantModel = Field(default=None, alias="lastModified", description="The date/time that the resource was modified on the server.") + outcome_field: ResourceListModel = Field(default=None, alias="outcome", description="An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.") + +class CapabilityStatementModel(BaseModel): + resourceType_field: str = "CapabilityStatement" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this capability statement when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this capability statement is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the capability statement is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this CapabilityStatement when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the capability statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the capability statement author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the capability statement. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the capability statement.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this capability statement. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this capability statement is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the capability statement was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the capability statement changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the capability statement.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the capability statement from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate capability statement instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the capability statement is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this capability statement is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the capability statement and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the capability statement.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + kind_field: codeModel = Field(default=None, alias="kind", description="The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).") + instantiates_field: List[canonicalModel] = Field(default_factory=list, alias="instantiates", description="Reference to a canonical URL of another CapabilityStatement that this software implements. This capability statement is a published API description that corresponds to a business service. The server may actually implement a subset of the capability statement it claims to implement, so the capability statement must specify the full capability details.") + imports_field: List[canonicalModel] = Field(default_factory=list, alias="imports", description="Reference to a canonical URL of another CapabilityStatement that this software adds to. The capability statement automatically includes everything in the other statement, and it is not duplicated, though the server may repeat the same resources, interactions and operations to add additional details to them.") + software_field: CapabilityStatement_SoftwareModel = Field(default=None, alias="software", description="Software that is covered by this capability statement. It is used when the capability statement describes the capabilities of a particular software version, independent of an installation.") + implementation_field: CapabilityStatement_ImplementationModel = Field(default=None, alias="implementation", description="Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program.") + fhirVersion_field: codeModel = Field(default=None, alias="fhirVersion", description="The version of the FHIR specification that this CapabilityStatement describes (which SHALL be the same as the FHIR version of the CapabilityStatement itself). There is no default value.") + format_field: List[codeModel] = Field(default_factory=list, alias="format", description="A list of the formats supported by this implementation using their content types.") + patchFormat_field: List[codeModel] = Field(default_factory=list, alias="patchFormat", description="A list of the patch formats supported by this implementation using their content types.") + acceptLanguage_field: List[codeModel] = Field(default_factory=list, alias="acceptLanguage", description="A list of the languages supported by this implementation that are usefully supported in the ```Accept-Language``` header.") + implementationGuide_field: List[canonicalModel] = Field(default_factory=list, alias="implementationGuide", description="A list of implementation guides that the server does (or should) support in their entirety.") + rest_field: List[CapabilityStatement_RestModel] = Field(default_factory=list, alias="rest", description="A definition of the restful capabilities of the solution, if any.") + messaging_field: List[CapabilityStatement_MessagingModel] = Field(default_factory=list, alias="messaging", description="A description of the messaging capabilities of the solution.") + document_field: List[CapabilityStatement_DocumentModel] = Field(default_factory=list, alias="document", description="A document definition.") + +class CapabilityStatement_SoftwareModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Name the software is known by.") + version_field: stringModel = Field(default=None, alias="version", description="The version identifier for the software covered by this statement.") + releaseDate_field: dateTimeModel = Field(default=None, alias="releaseDate", description="Date this version of the software was released.") + +class CapabilityStatement_ImplementationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Information about the specific installation that this capability statement relates to.") + url_field: urlModel = Field(default=None, alias="url", description="An absolute base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.") + custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="The organization responsible for the management of the instance and oversight of the data on the server at the specified URL.") + +class CapabilityStatement_RestModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: codeModel = Field(default=None, alias="mode", description="Identifies whether this portion of the statement is describing the ability to initiate or receive restful operations.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Information about the system's restful capabilities that apply across all applications, such as security.") + security_field: CapabilityStatement_SecurityModel = Field(default=None, alias="security", description="Information about security implementation from an interface perspective - what a client needs to know.") + resource_field: List[CapabilityStatement_ResourceModel] = Field(default_factory=list, alias="resource", description="A specification of the restful capabilities of the solution for a specific resource type.") + interaction_field: List[CapabilityStatement_Interaction1Model] = Field(default_factory=list, alias="interaction", description="A specification of restful operations supported by the system.") + searchParam_field: List[CapabilityStatement_SearchParamModel] = Field(default_factory=list, alias="searchParam", description="Search parameters that are supported for searching all resources for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation. This is only for searches executed against the system-level endpoint.") + operation_field: List[CapabilityStatement_OperationModel] = Field(default_factory=list, alias="operation", description="Definition of an operation or a named query together with its parameters and their meaning and type.") + compartment_field: List[canonicalModel] = Field(default_factory=list, alias="compartment", description="An absolute URI which is a reference to the definition of a compartment that the system supports. The reference is to a CompartmentDefinition resource by its canonical URL .") + +class CapabilityStatement_SecurityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + cors_field: booleanModel = Field(default=None, alias="cors", description="Server adds CORS headers when responding to requests - this enables Javascript applications to use the server.") + service_field: List[CodeableConceptModel] = Field(default_factory=list, alias="service", description="Types of security services that are supported/required by the system.") + description_field: markdownModel = Field(default=None, alias="description", description="General description of how security works.") + +class CapabilityStatement_ResourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="A type of resource exposed via the restful interface.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="A system-wide profile that is applied across *all* instances of the resource supported by the system. For example, if declared on Observation, this profile is the superset of capabilities for laboratory *and* vitals *and* other domains. See further discussion in [Using Profiles](profiling.html#profile-uses).") + supportedProfile_field: List[canonicalModel] = Field(default_factory=list, alias="supportedProfile", description="A list of profiles representing different use cases the system hosts/produces. A supported profile is a statement about the functionality of the data and services provided by the server (or the client) for supported use cases. For example, a system can define and declare multiple Observation profiles for laboratory observations, vital sign observations, etc. By declaring supported profiles, systems provide a way to determine whether individual resources are conformant. See further discussion in [Using Profiles](profiling.html#profile-uses).") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Additional information about the resource type used by the system.") + interaction_field: List[CapabilityStatement_InteractionModel] = Field(default_factory=list, alias="interaction", description="Identifies a restful operation supported by the solution.") + versioning_field: codeModel = Field(default=None, alias="versioning", description="This field is set to no-version to specify that the system does not support (server) or use (client) versioning for this resource type. If this has some other value, the server must at least correctly track and populate the versionId meta-property on resources. If the value is 'versioned-update', then the server supports all the versioning features, including using e-tags for version integrity in the API.") + readHistory_field: booleanModel = Field(default=None, alias="readHistory", description="A flag for whether the server is able to return past versions as part of the vRead operation.") + updateCreate_field: booleanModel = Field(default=None, alias="updateCreate", description="A flag to indicate that the server allows or needs to allow the client to create new identities on the server (that is, the client PUTs to a location where there is no existing resource). Allowing this operation means that the server allows the client to create new identities on the server.") + conditionalCreate_field: booleanModel = Field(default=None, alias="conditionalCreate", description="A flag that indicates that the server supports conditional create.") + conditionalRead_field: codeModel = Field(default=None, alias="conditionalRead", description="A code that indicates how the server supports conditional read.") + conditionalUpdate_field: booleanModel = Field(default=None, alias="conditionalUpdate", description="A flag that indicates that the server supports conditional update.") + conditionalPatch_field: booleanModel = Field(default=None, alias="conditionalPatch", description="A flag that indicates that the server supports conditional patch.") + conditionalDelete_field: codeModel = Field(default=None, alias="conditionalDelete", description="A code that indicates how the server supports conditional delete.") + referencePolicy_field: List[codeModel] = Field(default_factory=list, alias="referencePolicy", description="A set of flags that defines how references are supported.") + searchInclude_field: List[stringModel] = Field(default_factory=list, alias="searchInclude", description="A list of _include values supported by the server.") + searchRevInclude_field: List[stringModel] = Field(default_factory=list, alias="searchRevInclude", description="A list of _revinclude (reverse include) values supported by the server.") + searchParam_field: List[CapabilityStatement_SearchParamModel] = Field(default_factory=list, alias="searchParam", description="Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.") + operation_field: List[CapabilityStatement_OperationModel] = Field(default_factory=list, alias="operation", description="Definition of an operation or a named query together with its parameters and their meaning and type. Consult the definition of the operation for details about how to invoke the operation, and the parameters.") + +class CapabilityStatement_InteractionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Coded identifier of the operation, supported by the system resource.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.") + +class CapabilityStatement_SearchParamModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The label used for the search parameter in this particular system's API - i.e. the 'name' portion of the name-value pair that will appear as part of the search URL. This SHOULD be the same as the SearchParameter.code of the defining SearchParameter. However, it can sometimes differ if necessary to disambiguate when a server supports multiple SearchParameters that happen to share the same code.") + definition_field: canonicalModel = Field(default=None, alias="definition", description="An absolute URI that is a formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter (a reference to [SearchParameter.url](searchparameter-definitions.html#SearchParameter.url)). This element SHALL be populated if the search parameter refers to a SearchParameter defined by the FHIR core specification or externally defined IGs.") + type_field: codeModel = Field(default=None, alias="type", description="The type of value a search parameter refers to, and how the content is interpreted.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.") + +class CapabilityStatement_OperationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The name of the operation or query. For an operation, this name is prefixed with $ and used in the URL. For a query, this is the name used in the _query parameter when the query is called. This SHOULD be the same as the OperationDefinition.code of the defining OperationDefinition. However, it can sometimes differ if necessary to disambiguate when a server supports multiple OperationDefinition that happen to share the same code.") + definition_field: canonicalModel = Field(default=None, alias="definition", description="Where the formal definition can be found. If a server references the base definition of an Operation (i.e. from the specification itself such as ```http://hl7.org/fhir/OperationDefinition/ValueSet-expand```), that means it supports the full capabilities of the operation - e.g. both GET and POST invocation. If it only supports a subset, it must define its own custom [OperationDefinition](operationdefinition.html#) with a 'base' of the original OperationDefinition. The custom definition would describe the specific subset of functionality supported.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation that describes anything special about the operation behavior, possibly detailing different behavior for system, type and instance-level invocation of the operation.") + +class CapabilityStatement_Interaction1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A coded identifier of the operation, supported by the system.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.") + +class CapabilityStatement_MessagingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + endpoint_field: List[CapabilityStatement_EndpointModel] = Field(default_factory=list, alias="endpoint", description="An endpoint (network accessible address) to which messages and/or replies are to be sent.") + reliableCache_field: unsignedIntModel = Field(default=None, alias="reliableCache", description="Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the capability statement. For example, the process for becoming an authorized messaging exchange partner.") + supportedMessage_field: List[CapabilityStatement_SupportedMessageModel] = Field(default_factory=list, alias="supportedMessage", description="References to message definitions for messages this system can send or receive.") + +class CapabilityStatement_EndpointModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + protocol_field: CodingModel = Field(default=None, alias="protocol", description="A list of the messaging transport protocol(s) identifiers, supported by this endpoint.") + address_field: urlModel = Field(default=None, alias="address", description="The network address of the endpoint. For solutions that do not use network addresses for routing, it can be just an identifier.") + +class CapabilityStatement_SupportedMessageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: codeModel = Field(default=None, alias="mode", description="The mode of this event declaration - whether application is sender or receiver.") + definition_field: canonicalModel = Field(default=None, alias="definition", description="Points to a message definition that identifies the messaging event, message structure, allowed responses, etc.") + +class CapabilityStatement_DocumentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: codeModel = Field(default=None, alias="mode", description="Mode of this document declaration - whether an application is a producer or consumer.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="A description of how the application supports or uses the specified document profile. For example, when documents are created, what action is taken with consumed documents, etc.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="A profile on the document Bundle that constrains which resources are present, and their contents.") + +class CarePlanModel(BaseModel): + resourceType_field: str = "CarePlan" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this care plan by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A higher-level request resource (i.e. a plan, proposal or order) that is fulfilled in whole or in part by this care plan.") + replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Completed or terminated care plan whose function is taken by this new care plan.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger care plan of which this particular care plan is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the care plan and where the care plan fits into the workflow chain.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Identifies what kind of plan this is to support differentiation between multiple co-existing plans; e.g. Home health, psychiatric, asthma, disease management, wellness plan, etc.") + title_field: stringModel = Field(default=None, alias="title", description="Human-friendly name for the care plan.") + description_field: stringModel = Field(default=None, alias="description", description="A description of the scope and nature of the plan.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient or group whose intended care is described by the plan.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this CarePlan was created or to which the creation of this record is tightly associated.") + period_field: PeriodModel = Field(default=None, alias="period", description="Indicates when the plan did (or is intended to) come into effect and end.") + created_field: dateTimeModel = Field(default=None, alias="created", description="Represents when this particular CarePlan record was created in the system, which is often a system-generated date.") + custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="When populated, the custodian is responsible for the care plan. The care plan is attributed to the custodian.") + contributor_field: List[ReferenceModel] = Field(default_factory=list, alias="contributor", description="Identifies the individual(s), organization or device who provided the contents of the care plan.") + careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.") + addresses_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="addresses", description="Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.") + supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Identifies portions of the patient's record that specifically influenced the formation of the plan. These might include comorbidities, recent procedures, limitations, recent assessments, etc.") + goal_field: List[ReferenceModel] = Field(default_factory=list, alias="goal", description="Describes the intended objective(s) of carrying out the care plan.") + activity_field: List[CarePlan_ActivityModel] = Field(default_factory=list, alias="activity", description="Identifies an action that has occurred or is a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring that has occurred, education etc.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="General notes about the care plan not covered elsewhere.") + +class CarePlan_ActivityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + performedActivity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="performedActivity", description="Identifies the activity that was performed. For example, an activity could be patient education, exercise, or a medication administration. The reference to an event resource, such as Procedure or Encounter or Observation, represents the activity that was performed. The requested activity can be conveyed using the CarePlan.activity.plannedActivityReference (a reference to a “request” resource).") + progress_field: List[AnnotationModel] = Field(default_factory=list, alias="progress", description="Notes about the adherence/status/progress of the activity.") + plannedActivityReference_field: ReferenceModel = Field(default=None, alias="plannedActivityReference", description="The details of the proposed activity represented in a specific resource.") + +class CareTeamModel(BaseModel): + resourceType_field: str = "CareTeam" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this care team by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates the current state of the care team.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.") + name_field: stringModel = Field(default=None, alias="name", description="A label for human use intended to distinguish like teams. E.g. the red vs. green trauma teams.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient or group whose intended care is handled by the team.") + period_field: PeriodModel = Field(default=None, alias="period", description="Indicates when the team did (or is intended to) come into effect and end.") + participant_field: List[CareTeam_ParticipantModel] = Field(default_factory=list, alias="participant", description="Identifies all people and organizations who are expected to be involved in the care team.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the care team exists.") + managingOrganization_field: List[ReferenceModel] = Field(default_factory=list, alias="managingOrganization", description="The organization responsible for the care team.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A central contact detail for the care team (that applies to all members).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the CareTeam.") + +class CareTeam_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Indicates specific responsibility of an individual within the care team, such as Primary care physician, Trained social worker counselor, Caregiver, etc.") + member_field: ReferenceModel = Field(default=None, alias="member", description="The specific person or organization who is participating/expected to participate in the care team.") + onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="The organization of the practitioner.") + coveragePeriod_field: PeriodModel = Field(default=None, alias="coveragePeriod", description="When the member is generally available within this care team.") + coverageTiming_field: TimingModel = Field(default=None, alias="coverageTiming", description="When the member is generally available within this care team.") + +class ChargeItemModel(BaseModel): + resourceType_field: str = "ChargeItem" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this event performer or other systems.") + definitionUri_field: List[uriModel] = Field(default_factory=list, alias="definitionUri", description="References the (external) source of pricing information, rules of application for the code this ChargeItem uses.") + definitionCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="definitionCanonical", description="References the source of pricing information, rules of application for the code this ChargeItem uses.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the ChargeItem.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="ChargeItems can be grouped to larger ChargeItems covering the whole set.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies the charge, like a billing code.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual or set of individuals the action is being or was performed on.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This ChargeItem has the details of how the associated Encounter should be billed or otherwise be handled by finance systems.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="Date/time(s) or duration when the charged service was applied.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="Date/time(s) or duration when the charged service was applied.") + performer_field: List[ChargeItem_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed or participated in the charged service.") + performingOrganization_field: ReferenceModel = Field(default=None, alias="performingOrganization", description="The organization performing the service.") + requestingOrganization_field: ReferenceModel = Field(default=None, alias="requestingOrganization", description="The organization requesting the service.") + costCenter_field: ReferenceModel = Field(default=None, alias="costCenter", description="The financial cost center permits the tracking of charge attribution.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Quantity of which the charge item has been serviced.") + bodysite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodysite", description="The anatomical location where the related service has been applied.") + unitPriceComponent_field: MonetaryComponentModel = Field(default=None, alias="unitPriceComponent", description="The unit price of the chargable item.") + totalPriceComponent_field: MonetaryComponentModel = Field(default=None, alias="totalPriceComponent", description="The total price for the chargable item, accounting for the quantity.") + overrideReason_field: CodeableConceptModel = Field(default=None, alias="overrideReason", description="If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action.") + enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="The device, practitioner, etc. who entered the charge item.") + enteredDate_field: dateTimeModel = Field(default=None, alias="enteredDate", description="Date the charge item was entered.") + reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="Describes why the event occurred in coded or textual form.") + service_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="service", description="Indicated the rendered service that caused this charge.") + product_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="product", description="Identifies the device, food, drug or other product being charged either by type code or reference to an instance.") + account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="Account into which this ChargeItems belongs.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the event by the performer, subject or other participants.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Further information supporting this charge.") + +class ChargeItem_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.).") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed or participated in the service.") + +class ChargeItemDefinitionModel(BaseModel): + resourceType_field: str = "ChargeItemDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this charge item definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this charge item definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the charge item definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this charge item definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the charge item definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the charge item definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the ChargeItemDefinition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the charge item definition.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the ChargeItemDefinition.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this charge item definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the charge item definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the charge item definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the charge item definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the charge item definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate charge item definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the charge item definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this charge item definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the charge item definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the charge item definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + derivedFromUri_field: List[uriModel] = Field(default_factory=list, alias="derivedFromUri", description="The URL pointing to an externally-defined charge item definition that is adhered to in whole or in part by this definition.") + partOf_field: List[canonicalModel] = Field(default_factory=list, alias="partOf", description="A larger definition of which this particular definition is a component or step.") + replaces_field: List[canonicalModel] = Field(default_factory=list, alias="replaces", description="As new versions of a protocol or guideline are defined, allows identification of what versions are replaced by a new instance.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The defined billing details in this resource pertain to the given billing code.") + instance_field: List[ReferenceModel] = Field(default_factory=list, alias="instance", description="The defined billing details in this resource pertain to the given product instance(s).") + applicability_field: List[ChargeItemDefinition_ApplicabilityModel] = Field(default_factory=list, alias="applicability", description="Expressions that describe applicability criteria for the billing code.") + propertyGroup_field: List[ChargeItemDefinition_PropertyGroupModel] = Field(default_factory=list, alias="propertyGroup", description="Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.") + +class ChargeItemDefinition_ApplicabilityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + condition_field: ExpressionModel = Field(default=None, alias="condition", description="An expression that returns true or false, indicating whether the condition is satisfied. When using FHIRPath expressions, the %context environment variable must be replaced at runtime with the ChargeItem resource to which this definition is applied.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the charge item definition content was or is planned to be in active use.") + relatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="relatedArtifact", description="Reference to / quotation of the external source of the group of properties.") + +class ChargeItemDefinition_PropertyGroupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + applicability_field: List[ChargeItemDefinition_ApplicabilityModel] = Field(default_factory=list, alias="applicability", description="Expressions that describe applicability criteria for the priceComponent.") + priceComponent_field: List[MonetaryComponentModel] = Field(default_factory=list, alias="priceComponent", description="The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated.") + +class CitationModel(BaseModel): + resourceType_field: str = "Citation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this citation record when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this citation record when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the citation record when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the citation record author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the citation record. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the citation record.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this summary. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this citation record is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the citation record was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the citation record changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual that published the citation record.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the citation from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate citation record instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the citation record is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this citation is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="Use and/or publishing restrictions for the citation record, not for the cited artifact.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the citation record content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="Who authored or created the citation record.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="Who edited or revised the citation record.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="Who reviewed the citation record.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="Who endorsed the citation record.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Artifact related to the citation record.") + summary_field: List[Citation_SummaryModel] = Field(default_factory=list, alias="summary", description="A human-readable display of key concepts to represent the citation.") + classification_field: List[Citation_ClassificationModel] = Field(default_factory=list, alias="classification", description="The assignment to an organizing scheme.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Used for general notes and annotations not coded elsewhere.") + currentState_field: List[CodeableConceptModel] = Field(default_factory=list, alias="currentState", description="The status of the citation record.") + statusDate_field: List[Citation_StatusDateModel] = Field(default_factory=list, alias="statusDate", description="The state or status of the citation record paired with an effective date or period for that state.") + citedArtifact_field: Citation_CitedArtifactModel = Field(default=None, alias="citedArtifact", description="The article or artifact being described.") + +class Citation_SummaryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + style_field: CodeableConceptModel = Field(default=None, alias="style", description="Format for display of the citation summary.") + text_field: markdownModel = Field(default=None, alias="text", description="The human-readable display of the citation summary.") + +class Citation_ClassificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of classifier (e.g. publication type, keyword).") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="The specific classification value.") + +class Citation_StatusDateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + activity_field: CodeableConceptModel = Field(default=None, alias="activity", description="The state or status of the citation record (that will be paired with the period).") + actual_field: booleanModel = Field(default=None, alias="actual", description="Whether the status date is actual (has occurred) or expected (estimated or anticipated).") + period_field: PeriodModel = Field(default=None, alias="period", description="When the status started and/or ended.") + +class Citation_CitedArtifactModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify the cited artifact when it is represented in other formats, or referenced in a specification, model, design or an instance.") + relatedIdentifier_field: List[IdentifierModel] = Field(default_factory=list, alias="relatedIdentifier", description="A formal identifier that is used to identify things closely related to the cited artifact.") + dateAccessed_field: dateTimeModel = Field(default=None, alias="dateAccessed", description="When the cited artifact was accessed.") + version_field: Citation_VersionModel = Field(default=None, alias="version", description="The defined version of the cited artifact.") + currentState_field: List[CodeableConceptModel] = Field(default_factory=list, alias="currentState", description="The status of the cited artifact.") + statusDate_field: List[Citation_StatusDate1Model] = Field(default_factory=list, alias="statusDate", description="An effective date or period, historical or future, actual or expected, for a status of the cited artifact.") + title_field: List[Citation_TitleModel] = Field(default_factory=list, alias="title", description="The title details of the article or artifact.") + abstract_field: List[Citation_AbstractModel] = Field(default_factory=list, alias="abstract", description="The abstract may be used to convey article-contained abstracts, externally-created abstracts, or other descriptive summaries.") + part_field: Citation_PartModel = Field(default=None, alias="part", description="The component of the article or artifact.") + relatesTo_field: List[Citation_RelatesToModel] = Field(default_factory=list, alias="relatesTo", description="The artifact related to the cited artifact.") + publicationForm_field: List[Citation_PublicationFormModel] = Field(default_factory=list, alias="publicationForm", description="If multiple, used to represent alternative forms of the article that are not separate citations.") + webLocation_field: List[Citation_WebLocationModel] = Field(default_factory=list, alias="webLocation", description="Used for any URL for the article or artifact cited.") + classification_field: List[Citation_Classification1Model] = Field(default_factory=list, alias="classification", description="The assignment to an organizing scheme.") + contributorship_field: Citation_ContributorshipModel = Field(default=None, alias="contributorship", description="This element is used to list authors and other contributors, their contact information, specific contributions, and summary statements.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any additional information or content for the article or artifact.") + +class Citation_VersionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + value_field: stringModel = Field(default=None, alias="value", description="The version number or other version identifier.") + baseCitation_field: ReferenceModel = Field(default=None, alias="baseCitation", description="Citation for the main version of the cited artifact.") + +class Citation_StatusDate1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + activity_field: CodeableConceptModel = Field(default=None, alias="activity", description="A definition of the status associated with a date or period.") + actual_field: booleanModel = Field(default=None, alias="actual", description="Either occurred or expected.") + period_field: PeriodModel = Field(default=None, alias="period", description="When the status started and/or ended.") + +class Citation_TitleModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Used to express the reason for or classification of the title.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="Used to express the specific language of the title.") + text_field: markdownModel = Field(default=None, alias="text", description="The title of the article or artifact.") + +class Citation_AbstractModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Used to express the reason for or classification of the abstract.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="Used to express the specific language of the abstract.") + text_field: markdownModel = Field(default=None, alias="text", description="Abstract content.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright notice for the abstract.") + +class Citation_PartModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of component.") + value_field: stringModel = Field(default=None, alias="value", description="The specification of the component.") + baseCitation_field: ReferenceModel = Field(default=None, alias="baseCitation", description="The citation for the full article or artifact.") + +class Citation_RelatesToModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of relationship to the related artifact.") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Provides additional classifiers of the related artifact.") + label_field: stringModel = Field(default=None, alias="label", description="A short label that can be used to reference the related artifact from elsewhere in the containing artifact, such as a footnote index.") + display_field: stringModel = Field(default=None, alias="display", description="A brief description of the document or knowledge resource being referenced, suitable for display to a consumer.") + citation_field: markdownModel = Field(default=None, alias="citation", description="A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format.") + document_field: AttachmentModel = Field(default=None, alias="document", description="The document being referenced, represented as an attachment. Do not use this element if using the resource element to provide the canonical to the related artifact.") + resource_field: canonicalModel = Field(default=None, alias="resource", description="The related artifact, such as a library, value set, profile, or other knowledge resource.") + resourceReference_field: ReferenceModel = Field(default=None, alias="resourceReference", description="The related artifact, if the artifact is not a canonical resource, or a resource reference to a canonical resource.") + +class Citation_PublicationFormModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + publishedIn_field: Citation_PublishedInModel = Field(default=None, alias="publishedIn", description="The collection the cited article or artifact is published in.") + citedMedium_field: CodeableConceptModel = Field(default=None, alias="citedMedium", description="Describes the form of the medium cited. Common codes are Internet or Print. The CitedMedium value set has 6 codes. The codes internet, print, and offline-digital-storage are the common codes for a typical publication form, though internet and print are more common for study citations. Three additional codes (each appending one of the primary codes with -without-issue are used for situations when a study is published both within an issue (of a periodical release as commonly done for journals) AND is published separately from the issue (as commonly done with early online publication), to represent specific identification of the publication form not associated with the issue.") + volume_field: stringModel = Field(default=None, alias="volume", description="Volume number of journal or other collection in which the article is published.") + issue_field: stringModel = Field(default=None, alias="issue", description="Issue, part or supplement of journal or other collection in which the article is published.") + articleDate_field: dateTimeModel = Field(default=None, alias="articleDate", description="The date the article was added to the database, or the date the article was released.") + publicationDateText_field: stringModel = Field(default=None, alias="publicationDateText", description="Text representation of the date on which the issue of the cited artifact was published.") + publicationDateSeason_field: stringModel = Field(default=None, alias="publicationDateSeason", description="Spring, Summer, Fall/Autumn, Winter.") + lastRevisionDate_field: dateTimeModel = Field(default=None, alias="lastRevisionDate", description="The date the article was last revised or updated in the database.") + language_field: List[CodeableConceptModel] = Field(default_factory=list, alias="language", description="The language or languages in which this form of the article is published.") + accessionNumber_field: stringModel = Field(default=None, alias="accessionNumber", description="Entry number or identifier for inclusion in a database.") + pageString_field: stringModel = Field(default=None, alias="pageString", description="Used for full display of pagination.") + firstPage_field: stringModel = Field(default=None, alias="firstPage", description="Used for isolated representation of first page.") + lastPage_field: stringModel = Field(default=None, alias="lastPage", description="Used for isolated representation of last page.") + pageCount_field: stringModel = Field(default=None, alias="pageCount", description="Actual or approximate number of pages or screens. Distinct from reporting the page numbers.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright notice for the full article or artifact.") + +class Citation_PublishedInModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Kind of container (e.g. Periodical, database, or book).") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Journal identifiers include ISSN, ISO Abbreviation and NLMuniqueID; Book identifiers include ISBN.") + title_field: stringModel = Field(default=None, alias="title", description="Name of the database or title of the book or journal.") + publisher_field: ReferenceModel = Field(default=None, alias="publisher", description="Name of or resource describing the publisher.") + publisherLocation_field: stringModel = Field(default=None, alias="publisherLocation", description="Geographic location of the publisher.") + +class Citation_WebLocationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="A characterization of the object expected at the web location.") + url_field: uriModel = Field(default=None, alias="url", description="The specific URL.") + +class Citation_Classification1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of classifier (e.g. publication type, keyword).") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="The specific classification value.") + artifactAssessment_field: List[ReferenceModel] = Field(default_factory=list, alias="artifactAssessment", description="Complex or externally created classification.") + +class Citation_ContributorshipModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + complete_field: booleanModel = Field(default=None, alias="complete", description="Indicates if the list includes all authors and/or contributors.") + entry_field: List[Citation_EntryModel] = Field(default_factory=list, alias="entry", description="An individual entity named as a contributor, for example in the author list or contributor list.") + summary_field: List[Citation_Summary1Model] = Field(default_factory=list, alias="summary", description="Used to record a display of the author/contributor list without separate data element for each list member.") + +class Citation_EntryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + contributor_field: ReferenceModel = Field(default=None, alias="contributor", description="The identity of the individual contributor.") + forenameInitials_field: stringModel = Field(default=None, alias="forenameInitials", description="For citation styles that use initials.") + affiliation_field: List[ReferenceModel] = Field(default_factory=list, alias="affiliation", description="Organization affiliated with the contributor.") + contributionType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="contributionType", description="This element identifies the specific nature of an individual’s contribution with respect to the cited work.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role of the contributor (e.g. author, editor, reviewer, funder).") + contributionInstance_field: List[Citation_ContributionInstanceModel] = Field(default_factory=list, alias="contributionInstance", description="Contributions with accounting for time or number.") + correspondingContact_field: booleanModel = Field(default=None, alias="correspondingContact", description="Whether the contributor is the corresponding contributor for the role.") + rankingOrder_field: positiveIntModel = Field(default=None, alias="rankingOrder", description="Provides a numerical ranking to represent the degree of contributorship relative to other contributors, such as 1 for first author and 2 for second author.") + +class Citation_ContributionInstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The specific contribution.") + time_field: dateTimeModel = Field(default=None, alias="time", description="The time that the contribution was made.") + +class Citation_Summary1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Used most commonly to express an author list or a contributorship statement.") + style_field: CodeableConceptModel = Field(default=None, alias="style", description="The format for the display string, such as author last name with first letter capitalized followed by forename initials.") + source_field: CodeableConceptModel = Field(default=None, alias="source", description="Used to code the producer or rule for creating the display string.") + value_field: markdownModel = Field(default=None, alias="value", description="The display string for the author list, contributor list, or contributorship statement.") + +class ClaimModel(BaseModel): + resourceType_field: str = "Claim" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this claim.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of claim, e.g. oral, pharmacy, vision, institutional, professional.") + subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") + use_field: codeModel = Field(default=None, alias="use", description="A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party to whom the professional services and/or products have been supplied or are being considered and for whom actual or forecast reimbursement is sought.") + billablePeriod_field: PeriodModel = Field(default=None, alias="billablePeriod", description="The period for which charges are being submitted.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") + enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Individual who created the claim, predetermination or preauthorization.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who is target of the request.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="The provider which is responsible for the claim, predetermination or preauthorization.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="The provider-required urgency of processing the request. Typical values include: stat, normal, deferred.") + fundsReserve_field: CodeableConceptModel = Field(default=None, alias="fundsReserve", description="A code to indicate whether and for whom funds are to be reserved for future claims.") + related_field: List[Claim_RelatedModel] = Field(default_factory=list, alias="related", description="Other claims which are related to this claim such as prior submissions or claims for related services or for the same event.") + prescription_field: ReferenceModel = Field(default=None, alias="prescription", description="Prescription is the document/authorization given to the claim author for them to provide products and services for which consideration (reimbursement) is sought. Could be a RX for medications, an 'order' for oxygen or wheelchair or physiotherapy treatments.") + originalPrescription_field: ReferenceModel = Field(default=None, alias="originalPrescription", description="Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products.") + payee_field: Claim_PayeeModel = Field(default=None, alias="payee", description="The party to be reimbursed for cost of the products and services according to the terms of the policy.") + referral_field: ReferenceModel = Field(default=None, alias="referral", description="The referral information received by the claim author, it is not to be used when the author generates a referral for a patient. A copy of that referral may be provided as supporting information. Some insurers require proof of referral to pay for services or to pay specialist rates for services.") + encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") + facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services were provided.") + diagnosisRelatedGroup_field: CodeableConceptModel = Field(default=None, alias="diagnosisRelatedGroup", description="A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system.") + event_field: List[Claim_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") + careTeam_field: List[Claim_CareTeamModel] = Field(default_factory=list, alias="careTeam", description="The members of the team who provided the products and services.") + supportingInfo_field: List[Claim_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues.") + diagnosis_field: List[Claim_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="Information about diagnoses relevant to the claim items.") + procedure_field: List[Claim_ProcedureModel] = Field(default_factory=list, alias="procedure", description="Procedures performed on the patient relevant to the billing items with the claim.") + insurance_field: List[Claim_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services specified on the claim.") + accident_field: Claim_AccidentModel = Field(default=None, alias="accident", description="Details of an accident which resulted in injuries which required the products and services listed in the claim.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + item_field: List[Claim_ItemModel] = Field(default_factory=list, alias="item", description="A claim line. Either a simple product or service or a 'group' of details which can each be a simple items or groups of sub-details.") + total_field: MoneyModel = Field(default=None, alias="total", description="The total value of the all the items in the claim.") + +class Claim_RelatedModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + claim_field: ReferenceModel = Field(default=None, alias="claim", description="Reference to a related claim.") + relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="A code to convey how the claims are related.") + reference_field: IdentifierModel = Field(default=None, alias="reference", description="An alternate organizational reference to the case or file to which this particular claim pertains.") + +class Claim_PayeeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Party to be reimbursed: subscriber, provider, other.") + party_field: ReferenceModel = Field(default=None, alias="party", description="Reference to the individual or organization to whom any payment will be made.") + +class Claim_EventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") + whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") + +class Claim_CareTeamModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify care team entries.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="Member of the team who provided the product or service.") + responsible_field: booleanModel = Field(default=None, alias="responsible", description="The party who is billing and/or responsible for the claimed products or services.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team.") + specialty_field: CodeableConceptModel = Field(default=None, alias="specialty", description="The specialization of the practitioner or provider which is applicable for this service.") + +class Claim_SupportingInfoModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify supporting information entries.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="The general class of the information supplied: information; exception; accident, employment; onset, etc.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient for which care is sought.") + timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="The date when or period to which this information refers.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Provides the reason in the situation where a reason code is required in addition to the content.") + +class Claim_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify diagnosis entries.") + diagnosisCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="diagnosisCodeableConcept", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") + diagnosisReference_field: ReferenceModel = Field(default=None, alias="diagnosisReference", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") + onAdmission_field: CodeableConceptModel = Field(default=None, alias="onAdmission", description="Indication of whether the diagnosis was present on admission to a facility.") + +class Claim_ProcedureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify procedure entries.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Date and optionally time the procedure was performed.") + procedureCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="procedureCodeableConcept", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") + procedureReference_field: ReferenceModel = Field(default=None, alias="procedureReference", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + +class Claim_InsuranceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order.") + focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The business identifier to be used when the claim is sent for adjudication against this insurance policy.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") + businessArrangement_field: stringModel = Field(default=None, alias="businessArrangement", description="A business agreement number established between the provider and the insurer for special business processing purposes.") + preAuthRef_field: List[stringModel] = Field(default_factory=list, alias="preAuthRef", description="Reference numbers previously provided by the insurer to the provider to be quoted on subsequent claims containing services or products related to the prior authorization.") + claimResponse_field: ReferenceModel = Field(default=None, alias="claimResponse", description="The result of the adjudication of the line items for the Coverage specified in this insurance.") + +class Claim_AccidentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + date_field: dateModel = Field(default=None, alias="date", description="Date of an accident event related to the products and services contained in the claim.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers.") + locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="The physical location of the accident event.") + locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="The physical location of the accident event.") + +class Claim_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + careTeamSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="careTeamSequence", description="CareTeam members related to this service or product.") + diagnosisSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="diagnosisSequence", description="Diagnosis applicable for this service or product.") + procedureSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="procedureSequence", description="Procedures applicable for this service or product.") + informationSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="informationSequence", description="Exceptions, special conditions and supporting information applicable for this service or product.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") + locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") + locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") + locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item. Net = unit price * quantity * factor.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + bodySite_field: List[Claim_BodySiteModel] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") + encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") + detail_field: List[Claim_DetailModel] = Field(default_factory=list, alias="detail", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") + +class Claim_BodySiteModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") + subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") + +class Claim_DetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item.detail. Net = unit price * quantity * factor.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + subDetail_field: List[Claim_SubDetailModel] = Field(default_factory=list, alias="subDetail", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") + +class Claim_SubDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for line item.detail.subDetail. Net = unit price * quantity * factor.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + +class ClaimResponseModel(BaseModel): + resourceType_field: str = "ClaimResponse" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this claim response.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") + subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") + use_field: codeModel = Field(default=None, alias="use", description="A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for facast reimbursement is sought.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The party responsible for authorization, adjudication and reimbursement.") + requestor_field: ReferenceModel = Field(default=None, alias="requestor", description="The provider which is responsible for the claim, predetermination or preauthorization.") + request_field: ReferenceModel = Field(default=None, alias="request", description="Original request resource reference.") + outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of the claim, predetermination, or preauthorization processing.") + decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") + disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the adjudication.") + preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") + preAuthPeriod_field: PeriodModel = Field(default=None, alias="preAuthPeriod", description="The time frame during which this authorization is effective.") + event_field: List[ClaimResponse_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") + payeeType_field: CodeableConceptModel = Field(default=None, alias="payeeType", description="Type of Party to be reimbursed: subscriber, provider, other.") + encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") + diagnosisRelatedGroup_field: CodeableConceptModel = Field(default=None, alias="diagnosisRelatedGroup", description="A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system.") + item_field: List[ClaimResponse_ItemModel] = Field(default_factory=list, alias="item", description="A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details.") + addItem_field: List[ClaimResponse_AddItemModel] = Field(default_factory=list, alias="addItem", description="The first-tier service adjudications for payor added product or service lines.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results which are presented at the header level rather than at the line-item or add-item levels.") + total_field: List[ClaimResponse_TotalModel] = Field(default_factory=list, alias="total", description="Categorized monetary totals for the adjudication.") + payment_field: ClaimResponse_PaymentModel = Field(default=None, alias="payment", description="Payment details for the adjudication of the claim.") + fundsReserve_field: CodeableConceptModel = Field(default=None, alias="fundsReserve", description="A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom.") + formCode_field: CodeableConceptModel = Field(default=None, alias="formCode", description="A code for the form to be used for printing the content.") + form_field: AttachmentModel = Field(default=None, alias="form", description="The actual form, by reference or inclusion, for printing the content or an EOB.") + processNote_field: List[ClaimResponse_ProcessNoteModel] = Field(default_factory=list, alias="processNote", description="A note that describes or explains adjudication results in a human readable form.") + communicationRequest_field: List[ReferenceModel] = Field(default_factory=list, alias="communicationRequest", description="Request for additional supporting or authorizing information.") + insurance_field: List[ClaimResponse_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services specified on the claim.") + error_field: List[ClaimResponse_ErrorModel] = Field(default_factory=list, alias="error", description="Errors encountered during the processing of the adjudication.") + +class ClaimResponse_EventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") + whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") + +class ClaimResponse_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemSequence_field: positiveIntModel = Field(default=None, alias="itemSequence", description="A number to uniquely reference the claim item entries.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item.") + detail_field: List[ClaimResponse_DetailModel] = Field(default_factory=list, alias="detail", description="A claim detail. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") + +class ClaimResponse_ReviewOutcomeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") + reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="The reasons for the result of the claim, predetermination, or preauthorization adjudication.") + preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") + preAuthPeriod_field: PeriodModel = Field(default=None, alias="preAuthPeriod", description="The time frame during which this authorization is effective.") + +class ClaimResponse_AdjudicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include the value submitted, maximum values or percentages allowed or payable under the plan, amounts that: the patient is responsible for in aggregate or pertaining to this item; amounts paid by other coverages; and, the benefit payable for this item.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="A code supporting the understanding of the adjudication result and explaining variance from expected amount.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary amount associated with the category.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="A non-monetary value associated with the category. Mutually exclusive to the amount element above.") + +class ClaimResponse_DetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + detailSequence_field: positiveIntModel = Field(default=None, alias="detailSequence", description="A number to uniquely reference the claim detail entry.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + subDetail_field: List[ClaimResponse_SubDetailModel] = Field(default_factory=list, alias="subDetail", description="A sub-detail adjudication of a simple product or service.") + +class ClaimResponse_SubDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + subDetailSequence_field: positiveIntModel = Field(default=None, alias="subDetailSequence", description="A number to uniquely reference the claim sub-detail entry.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + +class ClaimResponse_AddItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="itemSequence", description="Claim items which this service line is intended to replace.") + detailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="detailSequence", description="The sequence number of the details within the claim item which this line is intended to replace.") + subdetailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="subdetailSequence", description="The sequence number of the sub-details within the details within the claim item which this line is intended to replace.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + provider_field: List[ReferenceModel] = Field(default_factory=list, alias="provider", description="The providers who are authorized for the services rendered to the patient.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") + locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") + locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") + locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem. Net = unit price * quantity * factor.") + bodySite_field: List[ClaimResponse_BodySiteModel] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + detail_field: List[ClaimResponse_Detail1Model] = Field(default_factory=list, alias="detail", description="The second-tier service adjudications for payor added services.") + +class ClaimResponse_BodySiteModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") + subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") + +class ClaimResponse_Detail1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem.detail. Net = unit price * quantity * factor.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + subDetail_field: List[ClaimResponse_SubDetail1Model] = Field(default_factory=list, alias="subDetail", description="The third-tier service adjudications for payor added services.") + +class ClaimResponse_SubDetail1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the addItem.detail.subDetail. Net = unit price * quantity * factor.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + +class ClaimResponse_TotalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary total amount associated with the category.") + +class ClaimResponse_PaymentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Whether this represents partial or complete payment of the benefits payable.") + adjustment_field: MoneyModel = Field(default=None, alias="adjustment", description="Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication.") + adjustmentReason_field: CodeableConceptModel = Field(default=None, alias="adjustmentReason", description="Reason for the payment adjustment.") + date_field: dateModel = Field(default=None, alias="date", description="Estimated date the payment will be issued or the actual issue date of payment.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Benefits payable less any payment adjustment.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Issuer's unique identifier for the payment instrument.") + +class ClaimResponse_ProcessNoteModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + number_field: positiveIntModel = Field(default=None, alias="number", description="A number to uniquely identify a note entry.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The business purpose of the note text.") + text_field: stringModel = Field(default=None, alias="text", description="The explanation or description associated with the processing.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="A code to define the language used in the text of the note.") + +class ClaimResponse_InsuranceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order.") + focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") + businessArrangement_field: stringModel = Field(default=None, alias="businessArrangement", description="A business agreement number established between the provider and the insurer for special business processing purposes.") + claimResponse_field: ReferenceModel = Field(default=None, alias="claimResponse", description="The result of the adjudication of the line items for the Coverage specified in this insurance.") + +class ClaimResponse_ErrorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemSequence_field: positiveIntModel = Field(default=None, alias="itemSequence", description="The sequence number of the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure.") + detailSequence_field: positiveIntModel = Field(default=None, alias="detailSequence", description="The sequence number of the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure.") + subDetailSequence_field: positiveIntModel = Field(default=None, alias="subDetailSequence", description="The sequence number of the sub-detail within the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="An error code, from a specified code system, which details why the claim could not be adjudicated.") + expression_field: List[stringModel] = Field(default_factory=list, alias="expression", description="A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.") + +class ClinicalImpressionModel(BaseModel): + resourceType_field: str = "ClinicalImpression" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this clinical impression by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + status_field: codeModel = Field(default=None, alias="status", description="Identifies the workflow status of the assessment.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the ClinicalImpression.") + description_field: stringModel = Field(default=None, alias="description", description="A summary of the context and/or cause of the assessment - why / where it was performed, and what patient events/status prompted it.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group of individuals assessed as part of this record.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this ClinicalImpression was created or to which the creation of this record is tightly associated.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The point in time or period over which the subject was assessed.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Indicates when the documentation of the assessment was complete.") + performer_field: ReferenceModel = Field(default=None, alias="performer", description="The clinician performing the assessment.") + previous_field: ReferenceModel = Field(default=None, alias="previous", description="A reference to the last assessment that was conducted on this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.") + problem_field: List[ReferenceModel] = Field(default_factory=list, alias="problem", description="A list of the relevant problems/conditions for a patient.") + changePattern_field: CodeableConceptModel = Field(default=None, alias="changePattern", description="Change in the status/pattern of a subject's condition since previously assessed, such as worsening, improving, or no change. It is a subjective assessment of the direction of the change.") + protocol_field: List[uriModel] = Field(default_factory=list, alias="protocol", description="Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.") + summary_field: stringModel = Field(default=None, alias="summary", description="A text summary of the investigations and the diagnosis.") + finding_field: List[ClinicalImpression_FindingModel] = Field(default_factory=list, alias="finding", description="Specific findings or diagnoses that were considered likely or relevant to ongoing treatment.") + prognosisCodeableConcept_field: List[CodeableConceptModel] = Field(default_factory=list, alias="prognosisCodeableConcept", description="Estimate of likely outcome.") + prognosisReference_field: List[ReferenceModel] = Field(default_factory=list, alias="prognosisReference", description="RiskAssessment expressing likely outcome.") + supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Information supporting the clinical impression, which can contain investigation results.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Commentary about the impression, typically recorded after the impression itself was made, though supplemental notes by the original author could also appear.") + +class ClinicalImpression_FindingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="Specific text, code or reference for finding or diagnosis, which may include ruled-out or resolved conditions.") + basis_field: stringModel = Field(default=None, alias="basis", description="Which investigations support finding or diagnosis.") + +class ClinicalUseDefinitionModel(BaseModel): + resourceType_field: str = "ClinicalUseDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this issue.") + type_field: codeModel = Field(default=None, alias="type", description="indication | contraindication | interaction | undesirable-effect | warning.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A categorisation of the issue, primarily for dividing warnings into subject heading areas such as Pregnancy and Lactation, Overdose, Effects on Ability to Drive and Use Machines.") + subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The medication, product, substance, device, procedure etc. for which this is an indication.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="Whether this is a current issue or one that has been retired etc.") + contraindication_field: ClinicalUseDefinition_ContraindicationModel = Field(default=None, alias="contraindication", description="Specifics for when this is a contraindication.") + indication_field: ClinicalUseDefinition_IndicationModel = Field(default=None, alias="indication", description="Specifics for when this is an indication.") + interaction_field: ClinicalUseDefinition_InteractionModel = Field(default=None, alias="interaction", description="Specifics for when this is an interaction.") + population_field: List[ReferenceModel] = Field(default_factory=list, alias="population", description="The population group to which this applies.") + library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="Logic used by the clinical use definition.") + undesirableEffect_field: ClinicalUseDefinition_UndesirableEffectModel = Field(default=None, alias="undesirableEffect", description="Describe the possible undesirable effects (negative outcomes) from the use of the medicinal product as treatment.") + warning_field: ClinicalUseDefinition_WarningModel = Field(default=None, alias="warning", description="A critical piece of information about environmental, health or physical risks or hazards that serve as caution to the user. For example 'Do not operate heavy machinery', 'May cause drowsiness', or 'Get medical advice/attention if you feel unwell'.") + +class ClinicalUseDefinition_ContraindicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + diseaseSymptomProcedure_field: CodeableReferenceModel = Field(default=None, alias="diseaseSymptomProcedure", description="The situation that is being documented as contraindicating against this item.") + diseaseStatus_field: CodeableReferenceModel = Field(default=None, alias="diseaseStatus", description="The status of the disease or symptom for the contraindication, for example chronic or metastatic.") + comorbidity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="comorbidity", description="A comorbidity (concurrent condition) or coinfection.") + indication_field: List[ReferenceModel] = Field(default_factory=list, alias="indication", description="The indication which this is a contraidication for.") + applicability_field: ExpressionModel = Field(default=None, alias="applicability", description="An expression that returns true or false, indicating whether the indication is applicable or not, after having applied its other elements.") + otherTherapy_field: List[ClinicalUseDefinition_OtherTherapyModel] = Field(default_factory=list, alias="otherTherapy", description="Information about the use of the medicinal product in relation to other therapies described as part of the contraindication.") + +class ClinicalUseDefinition_OtherTherapyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + relationshipType_field: CodeableConceptModel = Field(default=None, alias="relationshipType", description="The type of relationship between the medicinal product indication or contraindication and another therapy.") + treatment_field: CodeableReferenceModel = Field(default=None, alias="treatment", description="Reference to a specific medication (active substance, medicinal product or class of products, biological, food etc.) as part of an indication or contraindication.") + +class ClinicalUseDefinition_IndicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + diseaseSymptomProcedure_field: CodeableReferenceModel = Field(default=None, alias="diseaseSymptomProcedure", description="The situation that is being documented as an indicaton for this item.") + diseaseStatus_field: CodeableReferenceModel = Field(default=None, alias="diseaseStatus", description="The status of the disease or symptom for the indication, for example chronic or metastatic.") + comorbidity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="comorbidity", description="A comorbidity (concurrent condition) or coinfection as part of the indication.") + intendedEffect_field: CodeableReferenceModel = Field(default=None, alias="intendedEffect", description="The intended effect, aim or strategy to be achieved.") + durationRange_field: RangeModel = Field(default=None, alias="durationRange", description="Timing or duration information, that may be associated with use with the indicated condition e.g. Adult patients suffering from myocardial infarction (from a few days until less than 35 days), ischaemic stroke (from 7 days until less than 6 months).") + undesirableEffect_field: List[ReferenceModel] = Field(default_factory=list, alias="undesirableEffect", description="An unwanted side effect or negative outcome that may happen if you use the drug (or other subject of this resource) for this indication.") + applicability_field: ExpressionModel = Field(default=None, alias="applicability", description="An expression that returns true or false, indicating whether the indication is applicable or not, after having applied its other elements.") + otherTherapy_field: List[ClinicalUseDefinition_OtherTherapyModel] = Field(default_factory=list, alias="otherTherapy", description="Information about the use of the medicinal product in relation to other therapies described as part of the indication.") + +class ClinicalUseDefinition_InteractionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + interactant_field: List[ClinicalUseDefinition_InteractantModel] = Field(default_factory=list, alias="interactant", description="The specific medication, product, food, substance etc. or laboratory test that interacts.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the interaction e.g. drug-drug interaction, drug-food interaction, drug-lab test interaction.") + effect_field: CodeableReferenceModel = Field(default=None, alias="effect", description="The effect of the interaction, for example reduced gastric absorption of primary medication.") + incidence_field: CodeableConceptModel = Field(default=None, alias="incidence", description="The incidence of the interaction, e.g. theoretical, observed.") + management_field: List[CodeableConceptModel] = Field(default_factory=list, alias="management", description="Actions for managing the interaction.") + +class ClinicalUseDefinition_InteractantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The specific medication, product, food, substance etc. or laboratory test that interacts.") + itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The specific medication, product, food, substance etc. or laboratory test that interacts.") + +class ClinicalUseDefinition_UndesirableEffectModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + symptomConditionEffect_field: CodeableReferenceModel = Field(default=None, alias="symptomConditionEffect", description="The situation in which the undesirable effect may manifest.") + classification_field: CodeableConceptModel = Field(default=None, alias="classification", description="High level classification of the effect.") + frequencyOfOccurrence_field: CodeableConceptModel = Field(default=None, alias="frequencyOfOccurrence", description="How often the effect is seen.") + +class ClinicalUseDefinition_WarningModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="A textual definition of this warning, with formatting.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A coded or unformatted textual definition of this warning.") + +class CodeSystemModel(BaseModel): + resourceType_field: str = "CodeSystem" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this code system when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this code system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the code system is stored on different servers. This is used in [Coding](datatypes.html#Coding).system.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the code system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the code system author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. This is used in [Coding](datatypes.html#Coding).version.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which CodeSystem is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the code system. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the code system.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this code system. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this code system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the code system was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the code system changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the code system.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the code system from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate code system instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the code system is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this code system is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the code system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the code system.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the CodeSystem content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the CodeSystem. Topics provide a high-level categorization as well as keywords for the CodeSystem that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the CodeSystem.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the CodeSystem.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the CodeSystem.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the CodeSystem for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + caseSensitive_field: booleanModel = Field(default=None, alias="caseSensitive", description="If code comparison is case sensitive when codes within this system are compared to each other.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="Canonical reference to the value set that contains all codes in the code system independent of code status.") + hierarchyMeaning_field: codeModel = Field(default=None, alias="hierarchyMeaning", description="The meaning of the hierarchy of concepts as represented in this resource.") + compositional_field: booleanModel = Field(default=None, alias="compositional", description="The code system defines a compositional (post-coordination) grammar.") + versionNeeded_field: booleanModel = Field(default=None, alias="versionNeeded", description="This flag is used to signify that the code system does not commit to concept permanence across versions. If true, a version must be specified when referencing this code system.") + content_field: codeModel = Field(default=None, alias="content", description="The extent of the content of the code system (the concepts and codes it defines) are represented in this resource instance.") + supplements_field: canonicalModel = Field(default=None, alias="supplements", description="The canonical URL of the code system that this code system supplement is adding designations and properties to.") + count_field: unsignedIntModel = Field(default=None, alias="count", description="The total number of concepts defined by the code system. Where the code system has a compositional grammar, the basis of this count is defined by the system steward.") + filter_field: List[CodeSystem_FilterModel] = Field(default_factory=list, alias="filter", description="A filter that can be used in a value set compose statement when selecting concepts using a filter.") + property_field: List[CodeSystem_PropertyModel] = Field(default_factory=list, alias="property", description="A property defines an additional slot through which additional information can be provided about a concept.") + concept_field: List[CodeSystem_ConceptModel] = Field(default_factory=list, alias="concept", description="Concepts that are in the code system. The concept definitions are inherently hierarchical, but the definitions must be consulted to determine what the meanings of the hierarchical relationships are.") + +class CodeSystem_FilterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="The code that identifies this filter when it is used as a filter in [ValueSet](valueset.html#).compose.include.filter.") + description_field: stringModel = Field(default=None, alias="description", description="A description of how or why the filter is used.") + operator_field: List[codeModel] = Field(default_factory=list, alias="operator", description="A list of operators that can be used with the filter.") + value_field: stringModel = Field(default=None, alias="value", description="A description of what the value for the filter should be.") + +class CodeSystem_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify the property. The code is used internally (in CodeSystem.concept.property.code) and also externally, such as in property filters.") + uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code system.") + description_field: stringModel = Field(default=None, alias="description", description="A description of the property- why it is defined, and how its value might be used.") + type_field: codeModel = Field(default=None, alias="type", description="The type of the property value. Properties of type code contain a code defined by the code system (e.g. a reference to another defined concept).") + +class CodeSystem_ConceptModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code - a text symbol - that uniquely identifies the concept within the code system.") + display_field: stringModel = Field(default=None, alias="display", description="A human readable string that is the recommended default way to present this concept to a user.") + definition_field: stringModel = Field(default=None, alias="definition", description="The formal definition of the concept. The code system resource does not make formal definitions required, because of the prevalence of legacy systems. However, they are highly recommended, as without them there is no formal meaning associated with the concept.") + designation_field: List[CodeSystem_DesignationModel] = Field(default_factory=list, alias="designation", description="Additional representations for the concept - other languages, aliases, specialized purposes, used for particular purposes, etc.") + property_field: List[CodeSystem_Property1Model] = Field(default_factory=list, alias="property", description="A property value for this concept.") + concept_field: List[CodeSystem_ConceptModel] = Field(default_factory=list, alias="concept", description="Defines children of a concept to produce a hierarchy of concepts. The nature of the relationships is variable (is-a/contains/categorizes) - see hierarchyMeaning.") + +class CodeSystem_DesignationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: codeModel = Field(default=None, alias="language", description="The language this designation is defined for.") + use_field: CodingModel = Field(default=None, alias="use", description="A code that details how this designation would be used.") + additionalUse_field: List[CodingModel] = Field(default_factory=list, alias="additionalUse", description="Additional codes that detail how this designation would be used, if there is more than one use.") + value_field: stringModel = Field(default=None, alias="value", description="The text value for this designation.") + +class CodeSystem_Property1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is a reference to CodeSystem.property.code.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this property.") + +class CommunicationModel(BaseModel): + resourceType_field: str = "Communication" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="An order, proposal or plan fulfilled in whole or in part by this Communication.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event (e.g. Communication, Procedure) of which this particular communication is a component or step.") + inResponseTo_field: List[ReferenceModel] = Field(default_factory=list, alias="inResponseTo", description="Prior communication that this communication is in response to.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the transmission.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the Communication.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The type of message conveyed such as alert, notification, reminder, instruction, etc.") + priority_field: codeModel = Field(default=None, alias="priority", description="Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine.") + medium_field: List[CodeableConceptModel] = Field(default_factory=list, alias="medium", description="A channel that was used for this communication (e.g. email, fax).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group that was the focus of this communication.") + topic_field: CodeableConceptModel = Field(default=None, alias="topic", description="Description of the purpose/content, similar to a subject line in an email.") + about_field: List[ReferenceModel] = Field(default_factory=list, alias="about", description="Other resources that pertain to this communication and to which this communication should be associated.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this Communication was created or to which the creation of this record is tightly associated.") + sent_field: dateTimeModel = Field(default=None, alias="sent", description="The time when this communication was sent.") + received_field: dateTimeModel = Field(default=None, alias="received", description="The time when this communication arrived at the destination.") + recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="The entity (e.g. person, organization, clinical information system, care team or device) which is the target of the communication.") + sender_field: ReferenceModel = Field(default=None, alias="sender", description="The entity (e.g. person, organization, clinical information system, or device) which is the source of the communication.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason or justification for the communication.") + payload_field: List[Communication_PayloadModel] = Field(default_factory=list, alias="payload", description="Text, attachment(s), or resource(s) that was communicated to the recipient.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes or commentary about the communication by the sender, receiver or other interested parties.") + +class Communication_PayloadModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="A communicated content (or for multi-part communications, one portion of the communication).") + contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="A communicated content (or for multi-part communications, one portion of the communication).") + contentCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="contentCodeableConcept", description="A communicated content (or for multi-part communications, one portion of the communication).") + +class CommunicationRequestModel(BaseModel): + resourceType_field: str = "CommunicationRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan or proposal that is fulfilled in whole or in part by this request.") + replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Completed or terminated request(s) whose function is taken by this new request.") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the proposal or order.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the CommunicationRequest.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The type of message to be sent such as alert, notification, reminder, instruction, etc.") + priority_field: codeModel = Field(default=None, alias="priority", description="Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.") + medium_field: List[CodeableConceptModel] = Field(default_factory=list, alias="medium", description="A channel that was used for this communication (e.g. email, fax).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group that is the focus of this communication request.") + about_field: List[ReferenceModel] = Field(default_factory=list, alias="about", description="Other resources that pertain to this communication request and to which this communication request should be associated.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.") + payload_field: List[CommunicationRequest_PayloadModel] = Field(default_factory=list, alias="payload", description="Text, attachment(s), or resource(s) to be communicated to the recipient.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The time when this communication is to occur.") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="For draft requests, indicates the date of initial creation. For requests with other statuses, indicates the date of activation.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The device, individual, or organization who asks for the information to be shared.") + recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.") + informationProvider_field: List[ReferenceModel] = Field(default_factory=list, alias="informationProvider", description="The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the request is being made in coded or textual form.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the request by the requester, sender, recipient, subject or other participants.") + +class CommunicationRequest_PayloadModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="The communicated content (or for multi-part communications, one portion of the communication).") + contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="The communicated content (or for multi-part communications, one portion of the communication).") + contentCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="contentCodeableConcept", description="The communicated content (or for multi-part communications, one portion of the communication).") + +class CompartmentDefinitionModel(BaseModel): + resourceType_field: str = "CompartmentDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this compartment definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this {{title}} when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the capability statement.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this compartment definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the compartment definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the compartment definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the compartment definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the compartment definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate compartment definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this compartment definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + code_field: codeModel = Field(default=None, alias="code", description="Which compartment this definition describes.") + search_field: booleanModel = Field(default=None, alias="search", description="Whether the search syntax is supported,.") + resource_field: List[CompartmentDefinition_ResourceModel] = Field(default_factory=list, alias="resource", description="Information about how a resource is related to the compartment.") + +class CompartmentDefinition_ResourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="The name of a resource supported by the server.") + param_field: List[stringModel] = Field(default_factory=list, alias="param", description="The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="Additional documentation about the resource and compartment.") + startParam_field: uriModel = Field(default=None, alias="startParam", description="Search Parameter for mapping requests made with $everything.start (e.g. on [Patient.$everything](patient-operation-everything.html)).") + endParam_field: uriModel = Field(default=None, alias="endParam", description="Search Parameter for mapping requests made with $everything.end (e.g. on [Patient.$everything](patient-operation-everything.html)).") + +class CompositionModel(BaseModel): + resourceType_field: str = "Composition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.") + version_field: stringModel = Field(default=None, alias="version", description="An explicitly assigned identifer of a variation of the content in the Composition.") + status_field: codeModel = Field(default=None, alias="status", description="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.") + subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="Describes the clinical encounter or type of care this documentation is associated with.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The composition editing time, when the composition was last logically changed by the author.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances.") + author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for the information in the composition, not necessarily who typed it in.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the {{title}}. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="Official human-readable label for the composition.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="For any additional notes.") + attester_field: List[Composition_AttesterModel] = Field(default_factory=list, alias="attester", description="A participant who has attested to the accuracy of the composition/document.") + custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.") + relatesTo_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatesTo", description="Relationships that this composition has with other compositions or documents that already exist.") + event_field: List[Composition_EventModel] = Field(default_factory=list, alias="event", description="The clinical service, such as a colonoscopy or an appendectomy, being documented.") + section_field: List[Composition_SectionModel] = Field(default_factory=list, alias="section", description="The root of the sections that make up the composition.") + +class Composition_AttesterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: CodeableConceptModel = Field(default=None, alias="mode", description="The type of attestation the authenticator offers.") + time_field: dateTimeModel = Field(default=None, alias="time", description="When the composition was attested by the party.") + party_field: ReferenceModel = Field(default=None, alias="party", description="Who attested the composition in the specified way.") + +class Composition_EventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.") + detail_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="detail", description="Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a History and Physical Report in which case the procedure being documented is necessarily a History and Physical act. The events may be included as a code or as a reference to an other resource.") + +class Composition_SectionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code identifying the kind of content contained within the section. This must be consistent with the section title.") + author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for the information in this section, not necessarily who typed it in.") + focus_field: ReferenceModel = Field(default=None, alias="focus", description="The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative.") + orderedBy_field: CodeableConceptModel = Field(default=None, alias="orderedBy", description="Specifies the order applied to the items in the section entries.") + entry_field: List[ReferenceModel] = Field(default_factory=list, alias="entry", description="A reference to the actual resource from which the narrative in the section is derived.") + emptyReason_field: CodeableConceptModel = Field(default=None, alias="emptyReason", description="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.") + section_field: List[Composition_SectionModel] = Field(default_factory=list, alias="section", description="A nested sub-section within this section.") + +class ConceptMapModel(BaseModel): + resourceType_field: str = "ConceptMap" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which ConceptMap is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the concept map.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this concept map. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the concept map from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate concept map instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the concept map is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this concept map is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the ConceptMap content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the ConceptMap.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + property_field: List[ConceptMap_PropertyModel] = Field(default_factory=list, alias="property", description="A property defines a slot through which additional information can be provided about a map from source -> target.") + additionalAttribute_field: List[ConceptMap_AdditionalAttributeModel] = Field(default_factory=list, alias="additionalAttribute", description="An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa).") + group_field: List[ConceptMap_GroupModel] = Field(default_factory=list, alias="group", description="A group of mappings that all have the same source and target system.") + +class ConceptMap_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.") + uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal meaning of the property.") + description_field: stringModel = Field(default=None, alias="description", description="A description of the property - why it is defined, and how its value might be used.") + type_field: codeModel = Field(default=None, alias="type", description="The type of the property value.") + system_field: canonicalModel = Field(default=None, alias="system", description="The CodeSystem that defines the codes from which values of type ```code``` in property values.") + +class ConceptMap_AdditionalAttributeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.") + uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.") + description_field: stringModel = Field(default=None, alias="description", description="A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.") + type_field: codeModel = Field(default=None, alias="type", description="The type of the source data contained in this concept map for this data element.") + +class ConceptMap_GroupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + source_field: canonicalModel = Field(default=None, alias="source", description="An absolute URI that identifies the source system where the concepts to be mapped are defined.") + target_field: canonicalModel = Field(default=None, alias="target", description="An absolute URI that identifies the target system that the concepts will be mapped to.") + element_field: List[ConceptMap_ElementModel] = Field(default_factory=list, alias="element", description="Mappings for an individual concept in the source to one or more concepts in the target.") + unmapped_field: ConceptMap_UnmappedModel = Field(default=None, alias="unmapped", description="What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the default to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.") + +class ConceptMap_ElementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Identity (code or path) or the element/item being mapped.") + display_field: stringModel = Field(default=None, alias="display", description="The display for the code. The display is only provided to help editors when editing the concept map.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.") + noMap_field: booleanModel = Field(default=None, alias="noMap", description="If noMap = true this indicates that no mapping to a target concept exists for this source concept.") + target_field: List[ConceptMap_TargetModel] = Field(default_factory=list, alias="target", description="A concept from the target value set that this concept maps to.") + +class ConceptMap_TargetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Identity (code or path) or the element/item that the map refers to.") + display_field: stringModel = Field(default=None, alias="display", description="The display for the code. The display is only provided to help editors when editing the concept map.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.") + relationship_field: codeModel = Field(default=None, alias="relationship", description="The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).") + comment_field: stringModel = Field(default=None, alias="comment", description="A description of status/issues in mapping that conveys additional information not represented in the structured data.") + property_field: List[ConceptMap_Property1Model] = Field(default_factory=list, alias="property", description="A property value for this source -> target mapping.") + dependsOn_field: List[ConceptMap_DependsOnModel] = Field(default_factory=list, alias="dependsOn", description="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value.") + product_field: List[ConceptMap_DependsOnModel] = Field(default_factory=list, alias="product", description="Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.") + +class ConceptMap_Property1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A reference to a mapping property defined in ConceptMap.property.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.") + +class ConceptMap_DependsOnModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + attribute_field: codeModel = Field(default=None, alias="attribute", description="A reference to the additional attribute that holds a value the map depends on.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Data element value that the map depends on / produces.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Data element value that the map depends on / produces.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="This mapping applies if the data element value is a code from this value set.") + +class ConceptMap_UnmappedModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: codeModel = Field(default=None, alias="mode", description="Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).") + code_field: codeModel = Field(default=None, alias="code", description="The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code.") + display_field: stringModel = Field(default=None, alias="display", description="The display for the code. The display is only provided to help editors when editing the concept map.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The set of fixed codes to use when the mode = 'fixed' - all unmapped codes are mapped to each of the fixed codes.") + relationship_field: codeModel = Field(default=None, alias="relationship", description="The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.") + otherMap_field: canonicalModel = Field(default=None, alias="otherMap", description="The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.") + +class ConditionModel(BaseModel): + resourceType_field: str = "Condition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this condition by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + clinicalStatus_field: CodeableConceptModel = Field(default=None, alias="clinicalStatus", description="The clinical status of the condition.") + verificationStatus_field: CodeableConceptModel = Field(default=None, alias="verificationStatus", description="The verification status to support the clinical status of the condition. The verification status pertains to the condition, itself, not to any specific condition attribute.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A category assigned to the condition.") + severity_field: CodeableConceptModel = Field(default=None, alias="severity", description="A subjective assessment of the severity of the condition as evaluated by the clinician.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identification of the condition, problem or diagnosis.") + bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="The anatomical location where this condition manifests itself.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Indicates the patient or group who the condition record is associated with.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this Condition was created or to which the creation of this record is tightly associated.") + onsetAge_field: AgeModel = Field(default=None, alias="onsetAge", description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.") + onsetPeriod_field: PeriodModel = Field(default=None, alias="onsetPeriod", description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.") + onsetRange_field: RangeModel = Field(default=None, alias="onsetRange", description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.") + abatementAge_field: AgeModel = Field(default=None, alias="abatementAge", description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.") + abatementPeriod_field: PeriodModel = Field(default=None, alias="abatementPeriod", description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.") + abatementRange_field: RangeModel = Field(default=None, alias="abatementRange", description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.") + recordedDate_field: dateTimeModel = Field(default=None, alias="recordedDate", description="The recordedDate represents when this particular Condition record was created in the system, which is often a system-generated date.") + participant_field: List[Condition_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the activities related to the condition and how they were involved.") + stage_field: List[Condition_StageModel] = Field(default_factory=list, alias="stage", description="A simple summary of the stage such as Stage 3 or Early Onset. The determination of the stage is disease-specific, such as cancer, retinopathy of prematurity, kidney diseases, Alzheimer's, or Parkinson disease.") + evidence_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="evidence", description="Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.") + +class Condition_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the activities related to the condition.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the activities related to the condition.") + +class Condition_StageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + summary_field: CodeableConceptModel = Field(default=None, alias="summary", description="A simple summary of the stage such as Stage 3 or Early Onset. The determination of the stage is disease-specific, such as cancer, retinopathy of prematurity, kidney diseases, Alzheimer's, or Parkinson disease.") + assessment_field: List[ReferenceModel] = Field(default_factory=list, alias="assessment", description="Reference to a formal record of the evidence on which the staging assessment is based.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of staging, such as pathological or clinical staging.") + +class ConditionDefinitionModel(BaseModel): + resourceType_field: str = "ConditionDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this condition definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this condition definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the condition definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this condition definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the condition definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the condition definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the condition definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the condition definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this condition definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this condition definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the condition definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the condition definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the condition definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the condition definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate condition definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the condition definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this {{title}} is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the event definition giving additional information about its content.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identification of the condition, problem or diagnosis.") + severity_field: CodeableConceptModel = Field(default=None, alias="severity", description="A subjective assessment of the severity of the condition as evaluated by the clinician.") + bodySite_field: CodeableConceptModel = Field(default=None, alias="bodySite", description="The anatomical location where this condition manifests itself.") + stage_field: CodeableConceptModel = Field(default=None, alias="stage", description="Clinical stage or grade of a condition. May include formal severity assessments.") + hasSeverity_field: booleanModel = Field(default=None, alias="hasSeverity", description="Whether Severity is appropriate to collect for this condition.") + hasBodySite_field: booleanModel = Field(default=None, alias="hasBodySite", description="Whether bodySite is appropriate to collect for this condition.") + hasStage_field: booleanModel = Field(default=None, alias="hasStage", description="Whether stage is appropriate to collect for this condition.") + definition_field: List[uriModel] = Field(default_factory=list, alias="definition", description="Formal definitions of the condition. These may be references to ontologies, published clinical protocols or research papers.") + observation_field: List[ConditionDefinition_ObservationModel] = Field(default_factory=list, alias="observation", description="Observations particularly relevant to this condition.") + medication_field: List[ConditionDefinition_MedicationModel] = Field(default_factory=list, alias="medication", description="Medications particularly relevant for this condition.") + precondition_field: List[ConditionDefinition_PreconditionModel] = Field(default_factory=list, alias="precondition", description="An observation that suggests that this condition applies.") + team_field: List[ReferenceModel] = Field(default_factory=list, alias="team", description="Appropriate team for this condition.") + questionnaire_field: List[ConditionDefinition_QuestionnaireModel] = Field(default_factory=list, alias="questionnaire", description="Questionnaire for this condition.") + plan_field: List[ConditionDefinition_PlanModel] = Field(default_factory=list, alias="plan", description="Plan that is appropriate.") + +class ConditionDefinition_ObservationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Category that is relevant.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for relevant Observation.") + +class ConditionDefinition_MedicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Category that is relevant.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for relevant Medication.") + +class ConditionDefinition_PreconditionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="Kind of pre-condition.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for relevant Observation.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Value of Observation.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Value of Observation.") + +class ConditionDefinition_QuestionnaireModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + purpose_field: codeModel = Field(default=None, alias="purpose", description="Use of the questionnaire.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="Specific Questionnaire.") + +class ConditionDefinition_PlanModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Use for the plan.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="The actual plan.") + +class ConsentModel(BaseModel): + resourceType_field: str = "Consent" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for this copy of the Consent Statement.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates the current state of this Consent resource.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient/healthcare practitioner or group of persons to whom this consent applies.") + date_field: dateModel = Field(default=None, alias="date", description="Date the consent instance was agreed to.") + period_field: PeriodModel = Field(default=None, alias="period", description="Effective period for this Consent Resource and all provisions unless specified in that provision.") + grantor_field: List[ReferenceModel] = Field(default_factory=list, alias="grantor", description="The entity responsible for granting the rights listed in a Consent Directive.") + grantee_field: List[ReferenceModel] = Field(default_factory=list, alias="grantee", description="The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions.") + manager_field: List[ReferenceModel] = Field(default_factory=list, alias="manager", description="The actor that manages the consent through its lifecycle.") + controller_field: List[ReferenceModel] = Field(default_factory=list, alias="controller", description="The actor that controls/enforces the access according to the consent.") + sourceAttachment_field: List[AttachmentModel] = Field(default_factory=list, alias="sourceAttachment", description="The source on which this consent statement is based. The source might be a scanned original paper form.") + sourceReference_field: List[ReferenceModel] = Field(default_factory=list, alias="sourceReference", description="A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document.") + regulatoryBasis_field: List[CodeableConceptModel] = Field(default_factory=list, alias="regulatoryBasis", description="A set of codes that indicate the regulatory basis (if any) that this consent supports.") + policyBasis_field: Consent_PolicyBasisModel = Field(default=None, alias="policyBasis", description="A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form.") + policyText_field: List[ReferenceModel] = Field(default_factory=list, alias="policyText", description="A Reference to the human readable policy explaining the basis for the Consent.") + verification_field: List[Consent_VerificationModel] = Field(default_factory=list, alias="verification", description="Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person.") + decision_field: codeModel = Field(default=None, alias="decision", description="Action to take - permit or deny - as default.") + provision_field: List[Consent_ProvisionModel] = Field(default_factory=list, alias="provision", description="An exception to the base policy of this consent. An exception can be an addition or removal of access permissions.") + +class Consent_PolicyBasisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="A Reference that identifies the policy the organization will enforce for this Consent.") + url_field: urlModel = Field(default=None, alias="url", description="A URL that links to a computable version of the policy the organization will enforce for this Consent.") + +class Consent_VerificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + verified_field: booleanModel = Field(default=None, alias="verified", description="Has the instruction been verified.") + verificationType_field: CodeableConceptModel = Field(default=None, alias="verificationType", description="Extensible list of verification type starting with verification and re-validation.") + verifiedBy_field: ReferenceModel = Field(default=None, alias="verifiedBy", description="The person who conducted the verification/validation of the Grantor decision.") + verifiedWith_field: ReferenceModel = Field(default=None, alias="verifiedWith", description="Who verified the instruction (Patient, Relative or other Authorized Person).") + verificationDate_field: List[dateTimeModel] = Field(default_factory=list, alias="verificationDate", description="Date(s) verification was collected.") + +class Consent_ProvisionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + period_field: PeriodModel = Field(default=None, alias="period", description="Timeframe for this provision.") + actor_field: List[Consent_ActorModel] = Field(default_factory=list, alias="actor", description="Who or what is controlled by this provision. Use group to identify a set of actors by some property they share (e.g. 'admitting officers').") + action_field: List[CodeableConceptModel] = Field(default_factory=list, alias="action", description="Actions controlled by this provision.") + securityLabel_field: List[CodingModel] = Field(default_factory=list, alias="securityLabel", description="A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.") + purpose_field: List[CodingModel] = Field(default_factory=list, alias="purpose", description="The context of the activities a user is taking - why the user is accessing the data - that are controlled by this provision.") + documentType_field: List[CodingModel] = Field(default_factory=list, alias="documentType", description="The documentType(s) covered by this provision. The type can be a CDA document, or some other type that indicates what sort of information the consent relates to.") + resourceType_field: List[CodingModel] = Field(default_factory=list, alias="resourceType", description="The resourceType(s) covered by this provision. The type can be a FHIR resource type or a profile on a type that indicates what information the consent relates to.") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="If this code is found in an instance, then the provision applies.") + dataPeriod_field: PeriodModel = Field(default=None, alias="dataPeriod", description="Clinical or Operational Relevant period of time that bounds the data controlled by this provision.") + data_field: List[Consent_DataModel] = Field(default_factory=list, alias="data", description="The resources controlled by this provision if specific resources are referenced.") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="A computable (FHIRPath or other) definition of what is controlled by this consent.") + provision_field: List[Consent_ProvisionModel] = Field(default_factory=list, alias="provision", description="Provisions which provide exceptions to the base provision or subprovisions.") + +class Consent_ActorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="How the individual is involved in the resources content that is described in the exception.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').") + +class Consent_DataModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + meaning_field: codeModel = Field(default=None, alias="meaning", description="How the resource reference is interpreted when testing consent restrictions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a specific resource that defines which resources are covered by this consent.") + +class ContractModel(BaseModel): + resourceType_field: str = "Contract" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for this Contract or a derivative that references a Source Contract.") + url_field: uriModel = Field(default=None, alias="url", description="Canonical identifier for this contract, represented as a URI (globally unique).") + version_field: stringModel = Field(default=None, alias="version", description="An edition identifier used for business purposes to label business significant variants.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + legalState_field: CodeableConceptModel = Field(default=None, alias="legalState", description="Legal states of the formation of a legal instrument, which is a formally executed written document that can be formally attributed to its author, records and formally expresses a legally enforceable act, process, or contractual duty, obligation, or right, and therefore evidences that act, process, or agreement.") + instantiatesCanonical_field: ReferenceModel = Field(default=None, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined Contract Definition that is adhered to in whole or part by this Contract.") + instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an externally maintained definition that is adhered to in whole or in part by this Contract.") + contentDerivative_field: CodeableConceptModel = Field(default=None, alias="contentDerivative", description="The minimal content derived from the basal information source at a specific stage in its lifecycle.") + issued_field: dateTimeModel = Field(default=None, alias="issued", description="When this Contract was issued.") + applies_field: PeriodModel = Field(default=None, alias="applies", description="Relevant time or time-period when this Contract is applicable.") + expirationType_field: CodeableConceptModel = Field(default=None, alias="expirationType", description="Event resulting in discontinuation or termination of this Contract instance by one or more parties to the contract.") + subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The target entity impacted by or of interest to parties to the agreement.") + authority_field: List[ReferenceModel] = Field(default_factory=list, alias="authority", description="A formally or informally recognized grouping of people, principals, organizations, or jurisdictions formed for the purpose of achieving some form of collective action such as the promulgation, administration and enforcement of contracts and policies.") + domain_field: List[ReferenceModel] = Field(default_factory=list, alias="domain", description="Recognized governance framework or system operating with a circumscribed scope in accordance with specified principles, policies, processes or procedures for managing rights, actions, or behaviors of parties or principals relative to resources.") + site_field: List[ReferenceModel] = Field(default_factory=list, alias="site", description="Sites in which the contract is complied with, exercised, or in force.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying this Contract definition, derivative, or instance in any legal state. Provides additional information about its content. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for this Contract definition, derivative, or instance in any legal state.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="A more detailed or qualifying explanatory or alternate user-friendly title for this Contract definition, derivative, or instance in any legal state.") + alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="Alternative representation of the title for this Contract definition, derivative, or instance in any legal state., e.g., a domain specific contract number related to legislation.") + author_field: ReferenceModel = Field(default=None, alias="author", description="The individual or organization that authored the Contract definition, derivative, or instance in any legal state.") + scope_field: CodeableConceptModel = Field(default=None, alias="scope", description="A selector of legal concerns for this Contract definition, derivative, or instance in any legal state.") + topicCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="topicCodeableConcept", description="Narrows the range of legal concerns to focus on the achievement of specific contractual objectives.") + topicReference_field: ReferenceModel = Field(default=None, alias="topicReference", description="Narrows the range of legal concerns to focus on the achievement of specific contractual objectives.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A high-level category for the legal instrument, whether constructed as a Contract definition, derivative, or instance in any legal state. Provides additional information about its content within the context of the Contract's scope to distinguish the kinds of systems that would be interested in the contract.") + subType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subType", description="Sub-category for the Contract that distinguishes the kinds of systems that would be interested in the Contract within the context of the Contract's scope.") + contentDefinition_field: Contract_ContentDefinitionModel = Field(default=None, alias="contentDefinition", description="Precusory content developed with a focus and intent of supporting the formation a Contract instance, which may be associated with and transformable into a Contract.") + term_field: List[Contract_TermModel] = Field(default_factory=list, alias="term", description="One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups.") + supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Information that may be needed by/relevant to the performer in their execution of this term action.") + relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Links to Provenance records for past versions of this Contract definition, derivative, or instance, which identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the Contract. The Provenance.entity indicates the target that was changed in the update (see [Provenance.entity](provenance-definitions.html#Provenance.entity)).") + signer_field: List[Contract_SignerModel] = Field(default_factory=list, alias="signer", description="Parties with legal standing in the Contract, including the principal parties, the grantor(s) and grantee(s), which are any person or organization bound by the contract, and any ancillary parties, which facilitate the execution of the contract such as a notary or witness.") + friendly_field: List[Contract_FriendlyModel] = Field(default_factory=list, alias="friendly", description="The patient friendly language versionof the Contract in whole or in parts. Patient friendly language means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement.") + legal_field: List[Contract_LegalModel] = Field(default_factory=list, alias="legal", description="List of Legal expressions or representations of this Contract.") + rule_field: List[Contract_RuleModel] = Field(default_factory=list, alias="rule", description="List of Computable Policy Rule Language Representations of this Contract.") + legallyBindingAttachment_field: AttachmentModel = Field(default=None, alias="legallyBindingAttachment", description="Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the source of truth and which would be the basis for legal action related to enforcement of this Contract.") + legallyBindingReference_field: ReferenceModel = Field(default=None, alias="legallyBindingReference", description="Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the source of truth and which would be the basis for legal action related to enforcement of this Contract.") + +class Contract_ContentDefinitionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation.") + subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="Detailed Precusory content type.") + publisher_field: ReferenceModel = Field(default=None, alias="publisher", description="The individual or organization that published the Contract precursor content.") + publicationDate_field: dateTimeModel = Field(default=None, alias="publicationDate", description="The date (and optionally time) when the contract was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the contract changes.") + publicationStatus_field: codeModel = Field(default=None, alias="publicationStatus", description="amended | appended | cancelled | disputed | entered-in-error | executable +.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content.") + +class Contract_TermModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Unique identifier for this particular Contract Provision.") + issued_field: dateTimeModel = Field(default=None, alias="issued", description="When this Contract Provision was issued.") + applies_field: PeriodModel = Field(default=None, alias="applies", description="Relevant time or time-period when this Contract Provision is applicable.") + topicCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="topicCodeableConcept", description="The entity that the term applies to.") + topicReference_field: ReferenceModel = Field(default=None, alias="topicReference", description="The entity that the term applies to.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time.") + subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A specialized legal clause or condition based on overarching contract type.") + text_field: stringModel = Field(default=None, alias="text", description="Statement of a provision in a policy or a contract.") + securityLabel_field: List[Contract_SecurityLabelModel] = Field(default_factory=list, alias="securityLabel", description="Security labels that protect the handling of information about the term and its elements, which may be specifically identified.") + offer_field: Contract_OfferModel = Field(default=None, alias="offer", description="The matter of concern in the context of this provision of the agrement.") + asset_field: List[Contract_AssetModel] = Field(default_factory=list, alias="asset", description="Contract Term Asset List.") + action_field: List[Contract_ActionModel] = Field(default_factory=list, alias="action", description="An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.") + group_field: List[Contract_TermModel] = Field(default_factory=list, alias="group", description="Nested group of Contract Provisions.") + +class Contract_SecurityLabelModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + number_field: List[unsignedIntModel] = Field(default_factory=list, alias="number", description="Number used to link this term or term element to the applicable Security Label.") + classification_field: CodingModel = Field(default=None, alias="classification", description="Security label privacy tag that specifies the level of confidentiality protection required for this term and/or term elements.") + category_field: List[CodingModel] = Field(default_factory=list, alias="category", description="Security label privacy tag that specifies the applicable privacy and security policies governing this term and/or term elements.") + control_field: List[CodingModel] = Field(default_factory=list, alias="control", description="Security label privacy tag that specifies the manner in which term and/or term elements are to be protected.") + +class Contract_OfferModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for this particular Contract Provision.") + party_field: List[Contract_PartyModel] = Field(default_factory=list, alias="party", description="Offer Recipient.") + topic_field: ReferenceModel = Field(default=None, alias="topic", description="The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30).") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit.") + decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="Type of choice made by accepting party with respect to an offer made by an offeror/ grantee.") + decisionMode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="decisionMode", description="How the decision about a Contract was conveyed.") + answer_field: List[Contract_AnswerModel] = Field(default_factory=list, alias="answer", description="Response to offer text.") + text_field: stringModel = Field(default=None, alias="text", description="Human readable form of this Contract Offer.") + linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="The id of the clause or question text of the offer in the referenced questionnaire/response.") + securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="Security labels that protects the offer.") + +class Contract_PartyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: List[ReferenceModel] = Field(default_factory=list, alias="reference", description="Participant in the offer.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="How the party participates in the offer.") + +class Contract_AnswerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") + +class Contract_AssetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + scope_field: CodeableConceptModel = Field(default=None, alias="scope", description="Differentiates the kind of the asset .") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Target entity type about which the term may be concerned.") + typeReference_field: List[ReferenceModel] = Field(default_factory=list, alias="typeReference", description="Associated entities.") + subtype_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subtype", description="May be a subtype or part of an offered asset.") + relationship_field: CodingModel = Field(default=None, alias="relationship", description="Specifies the applicability of the term to an asset resource instance, and instances it refers to or instances that refer to it, and/or are owned by the offeree.") + context_field: List[Contract_ContextModel] = Field(default_factory=list, alias="context", description="Circumstance of the asset.") + condition_field: stringModel = Field(default=None, alias="condition", description="Description of the quality and completeness of the asset that may be a factor in its valuation.") + periodType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="periodType", description="Type of Asset availability for use or ownership.") + period_field: List[PeriodModel] = Field(default_factory=list, alias="period", description="Asset relevant contractual time period.") + usePeriod_field: List[PeriodModel] = Field(default_factory=list, alias="usePeriod", description="Time period of asset use.") + text_field: stringModel = Field(default=None, alias="text", description="Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract.") + linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse.") + answer_field: List[Contract_AnswerModel] = Field(default_factory=list, alias="answer", description="Response to assets.") + securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="Security labels that protects the asset.") + valuedItem_field: List[Contract_ValuedItemModel] = Field(default_factory=list, alias="valuedItem", description="Contract Valued Item List.") + +class Contract_ContextModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository), location held, e.g., building, jurisdiction.") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location.") + text_field: stringModel = Field(default=None, alias="text", description="Context description.") + +class Contract_ValuedItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + entityCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="entityCodeableConcept", description="Specific type of Contract Valued Item that may be priced.") + entityReference_field: ReferenceModel = Field(default=None, alias="entityReference", description="Specific type of Contract Valued Item that may be priced.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifies a Contract Valued Item instance.") + effectiveTime_field: dateTimeModel = Field(default=None, alias="effectiveTime", description="Indicates the time during which this Contract ValuedItem information is effective.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="A Contract Valued Item unit valuation measure.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + points_field: decimalModel = Field(default=None, alias="points", description="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point.") + net_field: MoneyModel = Field(default=None, alias="net", description="Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.") + payment_field: stringModel = Field(default=None, alias="payment", description="Terms of valuation.") + paymentDate_field: dateTimeModel = Field(default=None, alias="paymentDate", description="When payment is due.") + responsible_field: ReferenceModel = Field(default=None, alias="responsible", description="Who will make payment.") + recipient_field: ReferenceModel = Field(default=None, alias="recipient", description="Who will receive payment.") + linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="Id of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse.") + securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="A set of security labels that define which terms are controlled by this condition.") + +class Contract_ActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="True if the term prohibits the action.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term.") + subject_field: List[Contract_SubjectModel] = Field(default_factory=list, alias="subject", description="Entity of the action.") + intent_field: CodeableConceptModel = Field(default=None, alias="intent", description="Reason or purpose for the action stipulated by this Contract Provision.") + linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="Current state of the term action.") + context_field: ReferenceModel = Field(default=None, alias="context", description="Encounter or Episode with primary association to the specified term activity.") + contextLinkId_field: List[stringModel] = Field(default_factory=list, alias="contextLinkId", description="Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="When action happens.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="When action happens.") + requester_field: List[ReferenceModel] = Field(default_factory=list, alias="requester", description="Who or what initiated the action and has responsibility for its activation.") + requesterLinkId_field: List[stringModel] = Field(default_factory=list, alias="requesterLinkId", description="Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.") + performerType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="performerType", description="The type of individual that is desired or required to perform or not perform the action.") + performerRole_field: CodeableConceptModel = Field(default=None, alias="performerRole", description="The type of role or competency of an individual desired or required to perform or not perform the action.") + performer_field: ReferenceModel = Field(default=None, alias="performer", description="Indicates who or what is being asked to perform (or not perform) the ction.") + performerLinkId_field: List[stringModel] = Field(default_factory=list, alias="performerLinkId", description="Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited. Either a coded concept, or another resource whose existence justifies permitting or not permitting this action.") + reasonLinkId_field: List[stringModel] = Field(default_factory=list, alias="reasonLinkId", description="Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the term action made by the requester, performer, subject or other participants.") + securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="Security labels that protects the action.") + +class Contract_SubjectModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: List[ReferenceModel] = Field(default_factory=list, alias="reference", description="The entity the action is performed or not performed on or for.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Role type of agent assigned roles in this Contract.") + +class Contract_SignerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodingModel = Field(default=None, alias="type", description="Role of this Contract signer, e.g. notary, grantee.") + party_field: ReferenceModel = Field(default=None, alias="party", description="Party which is a signator to this Contract.") + signature_field: List[SignatureModel] = Field(default_factory=list, alias="signature", description="Legally binding Contract DSIG signature contents in Base64.") + +class Contract_FriendlyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability.") + contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability.") + +class Contract_LegalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="Contract legal text in human renderable form.") + contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="Contract legal text in human renderable form.") + +class Contract_RuleModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal).") + contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal).") + +class CoverageModel(BaseModel): + resourceType_field: str = "Coverage" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The identifier of the coverage as issued by the insurer.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + kind_field: codeModel = Field(default=None, alias="kind", description="The nature of the coverage be it insurance, or cash payment such as self-pay.") + paymentBy_field: List[Coverage_PaymentByModel] = Field(default_factory=list, alias="paymentBy", description="Link to the paying party and optionally what specifically they will be responsible to pay.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health or payment by an individual or organization.") + policyHolder_field: ReferenceModel = Field(default=None, alias="policyHolder", description="The party who 'owns' the insurance policy.") + subscriber_field: ReferenceModel = Field(default=None, alias="subscriber", description="The party who has signed-up for or 'owns' the contractual relationship to the policy or to whom the benefit of the policy for services rendered to them or their family is due.") + subscriberId_field: List[IdentifierModel] = Field(default_factory=list, alias="subscriberId", description="The insurer assigned ID for the Subscriber.") + beneficiary_field: ReferenceModel = Field(default=None, alias="beneficiary", description="The party who benefits from the insurance coverage; the patient when products and/or services are provided.") + dependent_field: stringModel = Field(default=None, alias="dependent", description="A designator for a dependent under the coverage.") + relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="The relationship of beneficiary (patient) to the subscriber.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The program or plan underwriter, payor, insurance company.") + class_field: List[Coverage_ClassModel] = Field(default_factory=list, alias="class", description="A suite of underwriter specific classifiers.") + order_field: positiveIntModel = Field(default=None, alias="order", description="The order of applicability of this coverage relative to other coverages which are currently in force. Note, there may be gaps in the numbering and this does not imply primary, secondary etc. as the specific positioning of coverages depends upon the episode of care. For example; a patient might have (0) auto insurance (1) their own health insurance and (2) spouse's health insurance. When claiming for treatments which were not the result of an auto accident then only coverages (1) and (2) above would be applicatble and would apply in the order specified in parenthesis.") + network_field: stringModel = Field(default=None, alias="network", description="The insurer-specific identifier for the insurer-defined network of providers to which the beneficiary may seek treatment which will be covered at the 'in-network' rate, otherwise 'out of network' terms and conditions apply.") + costToBeneficiary_field: List[Coverage_CostToBeneficiaryModel] = Field(default_factory=list, alias="costToBeneficiary", description="A suite of codes indicating the cost category and associated amount which have been detailed in the policy and may have been included on the health card.") + subrogation_field: booleanModel = Field(default=None, alias="subrogation", description="When 'subrogation=true' this insurance instance has been included not for adjudication but to provide insurers with the details to recover costs.") + contract_field: List[ReferenceModel] = Field(default_factory=list, alias="contract", description="The policy(s) which constitute this insurance coverage.") + insurancePlan_field: ReferenceModel = Field(default=None, alias="insurancePlan", description="The insurance plan details, benefits and costs, which constitute this insurance coverage.") + +class Coverage_PaymentByModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + party_field: ReferenceModel = Field(default=None, alias="party", description="The list of parties providing non-insurance payment for the treatment costs.") + responsibility_field: stringModel = Field(default=None, alias="responsibility", description=" Description of the financial responsibility.") + +class Coverage_ClassModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of classification for which an insurer-specific class label or number and optional name is provided. For example, type may be used to identify a class of coverage or employer group, policy, or plan.") + value_field: IdentifierModel = Field(default=None, alias="value", description="The alphanumeric identifier associated with the insurer issued label.") + name_field: stringModel = Field(default=None, alias="name", description="A short description for the class.") + +class Coverage_CostToBeneficiaryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of patient centric costs associated with treatment.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + network_field: CodeableConceptModel = Field(default=None, alias="network", description="Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers.") + unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Indicates if the benefits apply to an individual or to the family.") + term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The amount due from the patient for the cost category.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The amount due from the patient for the cost category.") + exception_field: List[Coverage_ExceptionModel] = Field(default_factory=list, alias="exception", description="A suite of codes indicating exceptions or reductions to patient costs and their effective periods.") + +class Coverage_ExceptionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The code for the specific exception.") + period_field: PeriodModel = Field(default=None, alias="period", description="The timeframe the exception is in force.") + +class CoverageEligibilityRequestModel(BaseModel): + resourceType_field: str = "CoverageEligibilityRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this coverage eligiblity request.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="When the requestor expects the processor to complete processing.") + purpose_field: List[codeModel] = Field(default_factory=list, alias="purpose", description="Code to specify whether requesting: prior authorization requirements for some service categories or billing codes; benefits for coverages specified or discovered; discovery and return of coverages for the patient; and/or validation that the specified coverage is in-force at the date/period specified or 'now' if not specified.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party who is the beneficiary of the supplied coverage and for whom eligibility is sought.") + event_field: List[CoverageEligibilityRequest_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the enclosed suite of services were performed or completed.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date when this resource was created.") + enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Person who created the request.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="The provider which is responsible for the request.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who issued the coverage in question and is the recipient of the request.") + facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services are intended to be provided.") + supportingInfo_field: List[CoverageEligibilityRequest_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues.") + insurance_field: List[CoverageEligibilityRequest_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services.") + item_field: List[CoverageEligibilityRequest_ItemModel] = Field(default_factory=list, alias="item", description="Service categories or billable services for which benefit details and/or an authorization prior to service delivery may be required by the payor.") + +class CoverageEligibilityRequest_EventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") + whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") + +class CoverageEligibilityRequest_SupportingInfoModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify supporting information entries.") + information_field: ReferenceModel = Field(default=None, alias="information", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + appliesToAll_field: booleanModel = Field(default=None, alias="appliesToAll", description="The supporting materials are applicable for all detail items, product/servce categories and specific billing codes.") + +class CoverageEligibilityRequest_InsuranceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for evaluation of this request when set to true.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") + businessArrangement_field: stringModel = Field(default=None, alias="businessArrangement", description="A business agreement number established between the provider and the insurer for special business processing purposes.") + +class CoverageEligibilityRequest_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + supportingInfoSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="supportingInfoSequence", description="Exceptions, special conditions and supporting information applicable for this service or product line.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="This contains the product, service, drug or other billing code for the item.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="The practitioner who is responsible for the product or service to be rendered to the patient.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="The amount charged to the patient by the provider for a single unit.") + facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services will be provided.") + diagnosis_field: List[CoverageEligibilityRequest_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="Patient diagnosis for which care is sought.") + detail_field: List[ReferenceModel] = Field(default_factory=list, alias="detail", description="The plan/proposal/order describing the proposed service in detail.") + +class CoverageEligibilityRequest_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + diagnosisCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="diagnosisCodeableConcept", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") + diagnosisReference_field: ReferenceModel = Field(default=None, alias="diagnosisReference", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") + +class CoverageEligibilityResponseModel(BaseModel): + resourceType_field: str = "CoverageEligibilityResponse" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this coverage eligiblity request.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + purpose_field: List[codeModel] = Field(default_factory=list, alias="purpose", description="Code to specify whether requesting: prior authorization requirements for some service categories or billing codes; benefits for coverages specified or discovered; discovery and return of coverages for the patient; and/or validation that the specified coverage is in-force at the date/period specified or 'now' if not specified.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party who is the beneficiary of the supplied coverage and for whom eligibility is sought.") + event_field: List[CoverageEligibilityResponse_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the enclosed suite of services were performed or completed.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") + requestor_field: ReferenceModel = Field(default=None, alias="requestor", description="The provider which is responsible for the request.") + request_field: ReferenceModel = Field(default=None, alias="request", description="Reference to the original request resource.") + outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of the request processing.") + disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the adjudication.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who issued the coverage in question and is the author of the response.") + insurance_field: List[CoverageEligibilityResponse_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services.") + preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="A reference from the Insurer to which these services pertain to be used on further communication and as proof that the request occurred.") + form_field: CodeableConceptModel = Field(default=None, alias="form", description="A code for the form to be used for printing the content.") + error_field: List[CoverageEligibilityResponse_ErrorModel] = Field(default_factory=list, alias="error", description="Errors encountered during the processing of the request.") + +class CoverageEligibilityResponse_EventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") + whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") + +class CoverageEligibilityResponse_InsuranceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") + inforce_field: booleanModel = Field(default=None, alias="inforce", description="Flag indicating if the coverage provided is inforce currently if no service date(s) specified or for the whole duration of the service dates.") + benefitPeriod_field: PeriodModel = Field(default=None, alias="benefitPeriod", description="The term of the benefits documented in this response.") + item_field: List[CoverageEligibilityResponse_ItemModel] = Field(default_factory=list, alias="item", description="Benefits and optionally current balances, and authorization details by category or service.") + +class CoverageEligibilityResponse_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="This contains the product, service, drug or other billing code for the item.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="The practitioner who is eligible for the provision of the product or service.") + excluded_field: booleanModel = Field(default=None, alias="excluded", description="True if the indicated class of service is excluded from the plan, missing or False indicates the product or service is included in the coverage.") + name_field: stringModel = Field(default=None, alias="name", description="A short name or tag for the benefit.") + description_field: stringModel = Field(default=None, alias="description", description="A richer description of the benefit or services covered.") + network_field: CodeableConceptModel = Field(default=None, alias="network", description="Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers.") + unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Indicates if the benefits apply to an individual or to the family.") + term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'.") + benefit_field: List[CoverageEligibilityResponse_BenefitModel] = Field(default_factory=list, alias="benefit", description="Benefits used to date.") + authorizationRequired_field: booleanModel = Field(default=None, alias="authorizationRequired", description="A boolean flag indicating whether a preauthorization is required prior to actual service delivery.") + authorizationSupporting_field: List[CodeableConceptModel] = Field(default_factory=list, alias="authorizationSupporting", description="Codes or comments regarding information or actions associated with the preauthorization.") + authorizationUrl_field: uriModel = Field(default=None, alias="authorizationUrl", description="A web location for obtaining requirements or descriptive information regarding the preauthorization.") + +class CoverageEligibilityResponse_BenefitModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Classification of benefit being provided.") + allowedMoney_field: MoneyModel = Field(default=None, alias="allowedMoney", description="The quantity of the benefit which is permitted under the coverage.") + usedMoney_field: MoneyModel = Field(default=None, alias="usedMoney", description="The quantity of the benefit which have been consumed to date.") + +class CoverageEligibilityResponse_ErrorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="An error code,from a specified code system, which details why the eligibility check could not be performed.") + expression_field: List[stringModel] = Field(default_factory=list, alias="expression", description="A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.") + +class DetectedIssueModel(BaseModel): + resourceType_field: str = "DetectedIssue" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier associated with the detected issue record.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates the status of the detected issue.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of detected issue.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identifies the specific type of issue identified.") + severity_field: codeModel = Field(default=None, alias="severity", description="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Indicates the subject whose record the detected issue is associated with.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter during which this issue was detected.") + identifiedPeriod_field: PeriodModel = Field(default=None, alias="identifiedPeriod", description="The date or period when the detected issue was initially identified.") + author_field: ReferenceModel = Field(default=None, alias="author", description="Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review.") + implicated_field: List[ReferenceModel] = Field(default_factory=list, alias="implicated", description="Indicates the resource representing the current activity or proposed activity that is potentially problematic.") + evidence_field: List[DetectedIssue_EvidenceModel] = Field(default_factory=list, alias="evidence", description="Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.") + detail_field: markdownModel = Field(default=None, alias="detail", description="A textual explanation of the detected issue.") + reference_field: uriModel = Field(default=None, alias="reference", description="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.") + mitigation_field: List[DetectedIssue_MitigationModel] = Field(default_factory=list, alias="mitigation", description="Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.") + +class DetectedIssue_EvidenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="A manifestation that led to the recording of this detected issue.") + detail_field: List[ReferenceModel] = Field(default_factory=list, alias="detail", description="Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.") + +class DetectedIssue_MitigationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + action_field: CodeableConceptModel = Field(default=None, alias="action", description="Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Indicates when the mitigating action was documented.") + author_field: ReferenceModel = Field(default=None, alias="author", description="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided.") + +class DeviceModel(BaseModel): + resourceType_field: str = "Device" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a device by manufacturers other organizations or owners.") + displayName_field: stringModel = Field(default=None, alias="displayName", description="The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name.") + definition_field: CodeableReferenceModel = Field(default=None, alias="definition", description="The reference to the definition for the device.") + udiCarrier_field: List[Device_UdiCarrierModel] = Field(default_factory=list, alias="udiCarrier", description="Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.") + status_field: codeModel = Field(default=None, alias="status", description="The Device record status. This is not the status of the device like availability.") + availabilityStatus_field: CodeableConceptModel = Field(default=None, alias="availabilityStatus", description="The availability of the device.") + biologicalSourceEvent_field: IdentifierModel = Field(default=None, alias="biologicalSourceEvent", description="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.") + manufacturer_field: stringModel = Field(default=None, alias="manufacturer", description="A name of the manufacturer or entity legally responsible for the device.") + manufactureDate_field: dateTimeModel = Field(default=None, alias="manufactureDate", description="The date and time when the device was manufactured.") + expirationDate_field: dateTimeModel = Field(default=None, alias="expirationDate", description="The date and time beyond which this device is no longer valid or should not be used (if applicable).") + lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="Lot number assigned by the manufacturer.") + serialNumber_field: stringModel = Field(default=None, alias="serialNumber", description="The serial number assigned by the organization when the device was manufactured.") + name_field: List[Device_NameModel] = Field(default_factory=list, alias="name", description="This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition.") + modelNumber_field: stringModel = Field(default=None, alias="modelNumber", description="The manufacturer's model number for the device.") + partNumber_field: stringModel = Field(default=None, alias="partNumber", description="The part number or catalog number of the device.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Devices may be associated with one or more categories.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device.") + version_field: List[Device_VersionModel] = Field(default_factory=list, alias="version", description="The actual design of the device or software version running on the device.") + conformsTo_field: List[Device_ConformsToModel] = Field(default_factory=list, alias="conformsTo", description="Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.") + property_field: List[Device_PropertyModel] = Field(default_factory=list, alias="property", description="Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes.") + mode_field: CodeableConceptModel = Field(default=None, alias="mode", description="The designated condition for performing a task with the device.") + cycle_field: CountModel = Field(default=None, alias="cycle", description="The series of occurrences that repeats during the operation of the device.") + duration_field: DurationModel = Field(default=None, alias="duration", description="A measurement of time during the device's operation (e.g., days, hours, mins, etc.).") + owner_field: ReferenceModel = Field(default=None, alias="owner", description="An organization that is responsible for the provision and ongoing maintenance of the device.") + contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for an organization or a particular human that is responsible for the device.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The place where the device can be found.") + url_field: uriModel = Field(default=None, alias="url", description="A network address on which the device may be contacted directly.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services provided by the device defined at this resource.") + gateway_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="gateway", description="The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Descriptive information, usage information or implantation information that is not captured in an existing element.") + safety_field: List[CodeableConceptModel] = Field(default_factory=list, alias="safety", description="Provides additional safety characteristics about a medical device. For example devices containing latex.") + parent_field: ReferenceModel = Field(default=None, alias="parent", description="The higher level or encompassing device that this device is a logical part of.") + +class Device_UdiCarrierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + deviceIdentifier_field: stringModel = Field(default=None, alias="deviceIdentifier", description="The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.") + issuer_field: uriModel = Field(default=None, alias="issuer", description="Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: ") + jurisdiction_field: uriModel = Field(default=None, alias="jurisdiction", description="The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi.") + carrierAIDC_field: stringModel = Field(default=None, alias="carrierAIDC", description="The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.") + carrierHRF_field: stringModel = Field(default=None, alias="carrierHRF", description="The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.") + entryType_field: codeModel = Field(default=None, alias="entryType", description="A coded entry to indicate how the data was entered.") + +class Device_NameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + value_field: stringModel = Field(default=None, alias="value", description="The actual name that identifies the device.") + type_field: codeModel = Field(default=None, alias="type", description="Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName.") + display_field: booleanModel = Field(default=None, alias="display", description="Indicates the default or preferred name to be displayed.") + +class Device_VersionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the device version, e.g. manufacturer, approved, internal.") + component_field: IdentifierModel = Field(default=None, alias="component", description="The hardware or software module of the device to which the version applies.") + installDate_field: dateTimeModel = Field(default=None, alias="installDate", description="The date the version was installed on the device.") + value_field: stringModel = Field(default=None, alias="value", description="The version text.") + +class Device_ConformsToModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Describes the type of the standard, specification, or formal guidance.") + specification_field: CodeableConceptModel = Field(default=None, alias="specification", description="Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.") + version_field: stringModel = Field(default=None, alias="version", description="Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.") + +class Device_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code that specifies the property, such as resolution, color, size, being represented.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the property specified by the associated property.type code.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the property specified by the associated property.type code.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the property specified by the associated property.type code.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the property specified by the associated property.type code.") + +class DeviceAssociationModel(BaseModel): + resourceType_field: str = "DeviceAssociation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Instance identifier.") + device_field: ReferenceModel = Field(default=None, alias="device", description="Reference to the devices associated with the patient or group.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Describes the relationship between the device and subject.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="Indicates the state of the Device association.") + statusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="statusReason", description="The reasons given for the current association status.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual, group of individuals or device that the device is on or associated with.") + bodyStructure_field: ReferenceModel = Field(default=None, alias="bodyStructure", description="Current anatomical location of the device in/on subject.") + period_field: PeriodModel = Field(default=None, alias="period", description="Begin and end dates and times for the device association.") + operation_field: List[DeviceAssociation_OperationModel] = Field(default_factory=list, alias="operation", description="The details about the device when it is in use to describe its operation.") + +class DeviceAssociation_OperationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="Device operational condition corresponding to the association.") + operator_field: List[ReferenceModel] = Field(default_factory=list, alias="operator", description="The individual performing the action enabled by the device.") + period_field: PeriodModel = Field(default=None, alias="period", description="Begin and end dates and times for the device's operation.") + +class DeviceDefinitionModel(BaseModel): + resourceType_field: str = "DeviceDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Additional information to describe the device.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID. The identifier is typically valued if the udiDeviceIdentifier, partNumber or modelNumber is not valued and represents a different type of identifier. However, it is permissible to still include those identifiers in DeviceDefinition.identifier with the appropriate identifier.type.") + udiDeviceIdentifier_field: List[DeviceDefinition_UdiDeviceIdentifierModel] = Field(default_factory=list, alias="udiDeviceIdentifier", description="Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.") + regulatoryIdentifier_field: List[DeviceDefinition_RegulatoryIdentifierModel] = Field(default_factory=list, alias="regulatoryIdentifier", description="Identifier associated with the regulatory documentation (certificates, technical documentation, post-market surveillance documentation and reports) of a set of device models sharing the same intended purpose, risk class and essential design and manufacturing characteristics. One example is the Basic UDI-DI in Europe.") + partNumber_field: stringModel = Field(default=None, alias="partNumber", description="The part number or catalog number of the device.") + manufacturer_field: ReferenceModel = Field(default=None, alias="manufacturer", description="A name of the manufacturer or legal representative e.g. labeler. Whether this is the actual manufacturer or the labeler or responsible depends on implementation and jurisdiction.") + deviceName_field: List[DeviceDefinition_DeviceNameModel] = Field(default_factory=list, alias="deviceName", description="The name or names of the device as given by the manufacturer.") + modelNumber_field: stringModel = Field(default=None, alias="modelNumber", description="The model number for the device for example as defined by the manufacturer or labeler, or other agency.") + classification_field: List[DeviceDefinition_ClassificationModel] = Field(default_factory=list, alias="classification", description="What kind of device or device system this is.") + conformsTo_field: List[DeviceDefinition_ConformsToModel] = Field(default_factory=list, alias="conformsTo", description="Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.") + hasPart_field: List[DeviceDefinition_HasPartModel] = Field(default_factory=list, alias="hasPart", description="A device that is part (for example a component) of the present device.") + packaging_field: List[DeviceDefinition_PackagingModel] = Field(default_factory=list, alias="packaging", description="Information about the packaging of the device, i.e. how the device is packaged.") + version_field: List[DeviceDefinition_VersionModel] = Field(default_factory=list, alias="version", description="The version of the device or software.") + safety_field: List[CodeableConceptModel] = Field(default_factory=list, alias="safety", description="Safety characteristics of the device.") + shelfLifeStorage_field: List[ProductShelfLifeModel] = Field(default_factory=list, alias="shelfLifeStorage", description="Shelf Life and storage information.") + languageCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="languageCode", description="Language code for the human-readable text strings produced by the device (all supported).") + property_field: List[DeviceDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="Static or essentially fixed characteristics or features of this kind of device that are otherwise not captured in more specific attributes, e.g., time or timing attributes, resolution, accuracy, and physical attributes.") + owner_field: ReferenceModel = Field(default=None, alias="owner", description="An organization that is responsible for the provision and ongoing maintenance of the device.") + contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for an organization or a particular human that is responsible for the device.") + link_field: List[DeviceDefinition_LinkModel] = Field(default_factory=list, alias="link", description="An associated device, attached to, used with, communicating with or linking a previous or new device model to the focal device.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Descriptive information, usage information or implantation information that is not captured in an existing element.") + material_field: List[DeviceDefinition_MaterialModel] = Field(default_factory=list, alias="material", description="A substance used to create the material(s) of which the device is made.") + productionIdentifierInUDI_field: List[codeModel] = Field(default_factory=list, alias="productionIdentifierInUDI", description="Indicates the production identifier(s) that are expected to appear in the UDI carrier on the device label.") + guideline_field: DeviceDefinition_GuidelineModel = Field(default=None, alias="guideline", description="Information aimed at providing directions for the usage of this model of device.") + correctiveAction_field: DeviceDefinition_CorrectiveActionModel = Field(default=None, alias="correctiveAction", description="Tracking of latest field safety corrective action.") + chargeItem_field: List[DeviceDefinition_ChargeItemModel] = Field(default_factory=list, alias="chargeItem", description="Billing code or reference associated with the device.") + +class DeviceDefinition_UdiDeviceIdentifierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + deviceIdentifier_field: stringModel = Field(default=None, alias="deviceIdentifier", description="The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdiction provided in the DeviceDefinition.udiDeviceIdentifier.") + issuer_field: uriModel = Field(default=None, alias="issuer", description="The organization that assigns the identifier algorithm.") + jurisdiction_field: uriModel = Field(default=None, alias="jurisdiction", description="The jurisdiction to which the deviceIdentifier applies.") + marketDistribution_field: List[DeviceDefinition_MarketDistributionModel] = Field(default_factory=list, alias="marketDistribution", description="Indicates where and when the device is available on the market.") + +class DeviceDefinition_MarketDistributionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + marketPeriod_field: PeriodModel = Field(default=None, alias="marketPeriod", description="Begin and end dates for the commercial distribution of the device.") + subJurisdiction_field: uriModel = Field(default=None, alias="subJurisdiction", description="National state or territory to which the marketDistribution recers, typically where the device is commercialized.") + +class DeviceDefinition_RegulatoryIdentifierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of identifier itself.") + deviceIdentifier_field: stringModel = Field(default=None, alias="deviceIdentifier", description="The identifier itself.") + issuer_field: uriModel = Field(default=None, alias="issuer", description="The organization that issued this identifier.") + jurisdiction_field: uriModel = Field(default=None, alias="jurisdiction", description="The jurisdiction to which the deviceIdentifier applies.") + +class DeviceDefinition_DeviceNameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="A human-friendly name that is used to refer to the device - depending on the type, it can be the brand name, the common name or alias, or other.") + type_field: codeModel = Field(default=None, alias="type", description="The type of deviceName.") + +class DeviceDefinition_ClassificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A classification or risk class of the device model.") + justification_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="justification", description="Further information qualifying this classification of the device model.") + +class DeviceDefinition_ConformsToModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Describes the type of the standard, specification, or formal guidance.") + specification_field: CodeableConceptModel = Field(default=None, alias="specification", description="Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.") + version_field: List[stringModel] = Field(default_factory=list, alias="version", description="Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.") + source_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="source", description="Standard, regulation, certification, or guidance website, document, or other publication, or similar, supporting the conformance.") + +class DeviceDefinition_HasPartModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="Reference to the device that is part of the current device.") + count_field: integerModel = Field(default=None, alias="count", description="Number of instances of the component device in the current device.") + +class DeviceDefinition_PackagingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The business identifier of the packaged medication.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code that defines the specific type of packaging.") + count_field: integerModel = Field(default=None, alias="count", description="The number of items contained in the package (devices or sub-packages).") + distributor_field: List[DeviceDefinition_DistributorModel] = Field(default_factory=list, alias="distributor", description="An organization that distributes the packaged device.") + udiDeviceIdentifier_field: List[DeviceDefinition_UdiDeviceIdentifierModel] = Field(default_factory=list, alias="udiDeviceIdentifier", description="Unique Device Identifier (UDI) Barcode string on the packaging.") + packaging_field: List[DeviceDefinition_PackagingModel] = Field(default_factory=list, alias="packaging", description="Allows packages within packages.") + +class DeviceDefinition_DistributorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Distributor's human-readable name.") + organizationReference_field: List[ReferenceModel] = Field(default_factory=list, alias="organizationReference", description="Distributor as an Organization resource.") + +class DeviceDefinition_VersionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the device version, e.g. manufacturer, approved, internal.") + component_field: IdentifierModel = Field(default=None, alias="component", description="The hardware or software module of the device to which the version applies.") + value_field: stringModel = Field(default=None, alias="value", description="The version text.") + +class DeviceDefinition_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code that specifies the property such as a resolution or color being represented.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the property specified by the associated property.type code.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the property specified by the associated property.type code.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the property specified by the associated property.type code.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the property specified by the associated property.type code.") + +class DeviceDefinition_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + relation_field: CodingModel = Field(default=None, alias="relation", description="The type indicates the relationship of the related device to the device instance.") + relatedDevice_field: CodeableReferenceModel = Field(default=None, alias="relatedDevice", description="A reference to the linked device.") + +class DeviceDefinition_MaterialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + substance_field: CodeableConceptModel = Field(default=None, alias="substance", description="A substance that the device contains, may contain, or is made of - for example latex - to be used to determine patient compatibility. This is not intended to represent the composition of the device, only the clinically relevant materials.") + alternate_field: booleanModel = Field(default=None, alias="alternate", description="Indicates an alternative material of the device.") + allergenicIndicator_field: booleanModel = Field(default=None, alias="allergenicIndicator", description="Whether the substance is a known or suspected allergen.") + +class DeviceDefinition_GuidelineModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The circumstances that form the setting for using the device.") + usageInstruction_field: markdownModel = Field(default=None, alias="usageInstruction", description="Detailed written and visual directions for the user on how to use the device.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="A source of information or reference for this guideline.") + indication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="indication", description="A clinical condition for which the device was designed to be used.") + contraindication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="contraindication", description="A specific situation when a device should not be used because it may cause harm.") + warning_field: List[CodeableConceptModel] = Field(default_factory=list, alias="warning", description="Specific hazard alert information that a user needs to know before using the device.") + intendedUse_field: stringModel = Field(default=None, alias="intendedUse", description="A description of the general purpose or medical use of the device or its function.") + +class DeviceDefinition_CorrectiveActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + recall_field: booleanModel = Field(default=None, alias="recall", description="Whether the last corrective action known for this device was a recall.") + scope_field: codeModel = Field(default=None, alias="scope", description="The scope of the corrective action - whether the action targeted all units of a given device model, or only a specific set of batches identified by lot numbers, or individually identified devices identified by the serial name.") + period_field: PeriodModel = Field(default=None, alias="period", description="Start and end dates of the corrective action.") + +class DeviceDefinition_ChargeItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + chargeItemCode_field: CodeableReferenceModel = Field(default=None, alias="chargeItemCode", description="The code or reference for the charge item.") + count_field: QuantityModel = Field(default=None, alias="count", description="Coefficient applicable to the billing code.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="A specific time period in which this charge item applies.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The context to which this charge item applies.") + +class DeviceDispenseModel(BaseModel): + resourceType_field: str = "DeviceDispense" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this dispensation.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The order or request that this dispense is fulfilling.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="The bigger event that this dispense is a part of.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the set of dispense events.") + statusReason_field: CodeableReferenceModel = Field(default=None, alias="statusReason", description="Indicates the reason why a dispense was or was not performed.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Indicates the type of device dispense.") + device_field: CodeableReferenceModel = Field(default=None, alias="device", description="Identifies the device being dispensed. This is either a link to a resource representing the details of the device or a simple attribute carrying a code that identifies the device from a known list of devices.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="A link to a resource representing the person to whom the device is intended.") + receiver_field: ReferenceModel = Field(default=None, alias="receiver", description="Identifies the person who picked up the device or the person or location where the device was delivered. This may be a patient or their caregiver, but some cases exist where it can be a healthcare professional or a location.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this event.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information that supports the device being dispensed.") + performer_field: List[DeviceDispense_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the event.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The principal physical location where the dispense was performed.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates the type of dispensing event that is performed.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of devices that have been dispensed.") + preparedDate_field: dateTimeModel = Field(default=None, alias="preparedDate", description="The time when the dispensed product was packaged and reviewed.") + whenHandedOver_field: dateTimeModel = Field(default=None, alias="whenHandedOver", description="The time the dispensed product was made available to the patient or their representative.") + destination_field: ReferenceModel = Field(default=None, alias="destination", description="Identification of the facility/location where the device was /should be shipped to, as part of the dispense process.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the dispense that could not be conveyed in the other attributes.") + usageInstruction_field: markdownModel = Field(default=None, alias="usageInstruction", description="The full representation of the instructions.") + eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="A summary of the events of interest that have occurred, such as when the dispense was verified.") + +class DeviceDispense_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the device.") + +class DeviceMetricModel(BaseModel): + resourceType_field: str = "DeviceMetric" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Instance identifiers assigned to a device, by the device or gateway software, manufacturers, other organizations or owners. For example, handle ID.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.") + unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.") + device_field: ReferenceModel = Field(default=None, alias="device", description="Describes the link to the Device. This is also known as a channel device.") + operationalStatus_field: codeModel = Field(default=None, alias="operationalStatus", description="Indicates current operational state of the device. For example: On, Off, Standby, etc.") + color_field: codeModel = Field(default=None, alias="color", description="The preferred color associated with the metric (e.g., display color). This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth; the metrics are displayed in different characteristic colors, such as HR in blue, BP in green, and PR and SpO2 in magenta.") + category_field: codeModel = Field(default=None, alias="category", description="Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.") + measurementFrequency_field: QuantityModel = Field(default=None, alias="measurementFrequency", description="The frequency at which the metric is taken or recorded. Devices measure metrics at a wide range of frequencies; for example, an ECG might sample measurements in the millisecond range, while an NIBP might trigger only once an hour. Less often, the measurementFrequency may be based on a unit other than time, such as distance (e.g. for a measuring wheel). The update period may be different than the measurement frequency, if the device does not update the published observed value with the same frequency as it was measured.") + calibration_field: List[DeviceMetric_CalibrationModel] = Field(default_factory=list, alias="calibration", description="Describes the calibrations that have been performed or that are required to be performed.") + +class DeviceMetric_CalibrationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="Describes the type of the calibration method.") + state_field: codeModel = Field(default=None, alias="state", description="Describes the state of the calibration.") + time_field: instantModel = Field(default=None, alias="time", description="Describes the time last calibration has been performed.") + +class DeviceRequestModel(BaseModel): + resourceType_field: str = "DeviceRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this order by the orderer or by the receiver.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this DeviceRequest.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this DeviceRequest.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Plan/proposal/order fulfilled by this request.") + replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="The request takes the place of the referenced completed or terminated request(s).") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the request.") + intent_field: codeModel = Field(default=None, alias="intent", description="Whether the request is a proposal, plan, an original order or a reflex order.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the request should be addressed with respect to other requests.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true, indicates that the provider is asking for the patient to either stop using or to not start using the specified device or category of devices. For example, the patient has undergone surgery and the provider is indicating that the patient should not wear contact lenses.") + code_field: CodeableReferenceModel = Field(default=None, alias="code", description="The details of the device to be used.") + quantity_field: integerModel = Field(default=None, alias="quantity", description="The number of devices to be provided.") + parameter_field: List[DeviceRequest_ParameterModel] = Field(default_factory=list, alias="parameter", description="Specific parameters for the ordered item. For example, the prism value for lenses.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient who will use the device.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="An encounter that provides additional context in which this request is made.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. Every 8 hours; Three times a day; 1/2 an hour before breakfast for 10 days from 23-Dec 2011:; 15 Oct 2013, 17 Oct 2013 and 1 Nov 2013.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. Every 8 hours; Three times a day; 1/2 an hour before breakfast for 10 days from 23-Dec 2011:; 15 Oct 2013, 17 Oct 2013 and 1 Nov 2013.") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="When the request transitioned to being actionable.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The individual or entity who initiated the request and has responsibility for its activation.") + performer_field: CodeableReferenceModel = Field(default=None, alias="performer", description="The desired individual or entity to provide the device to the subject of the request (e.g., patient, location).") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Reason or justification for the use of this device.") + asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="This status is to indicate whether the request is a PRN or may be given as needed.") + asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="The reason for using the device.") + insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.") + supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Additional clinical information about the patient that may influence the request fulfilment. For example, this may include where on the subject's body the device will be used (i.e. the target site).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.") + relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Key events in the history of the request.") + +class DeviceRequest_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code or string that identifies the device detail being asserted.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the device detail.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the device detail.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the device detail.") + +class DeviceUsageModel(BaseModel): + resourceType_field: str = "DeviceUsage" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An external identifier for this statement such as an IRI.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this DeviceUsage.") + status_field: codeModel = Field(default=None, alias="status", description="A code representing the patient or other source's judgment about the state of the device used that this statement is about. Generally this will be active or completed.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="This attribute indicates a category for the statement - The device statement may be made in an inpatient or outpatient settting (inpatient | outpatient | community | patientspecified).") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who used the device.") + derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="Allows linking the DeviceUsage to the underlying Request, or to other information that supports or is used to derive the DeviceUsage.") + context_field: ReferenceModel = Field(default=None, alias="context", description="The encounter or episode of care that establishes the context for this device use statement.") + timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="How often the device was used.") + timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="How often the device was used.") + dateAsserted_field: dateTimeModel = Field(default=None, alias="dateAsserted", description="The time at which the statement was recorded by informationSource.") + usageStatus_field: CodeableConceptModel = Field(default=None, alias="usageStatus", description="The status of the device usage, for example always, sometimes, never. This is not the same as the status of the statement.") + usageReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="usageReason", description="The reason for asserting the usage status - for example forgot, lost, stolen, broken.") + adherence_field: DeviceUsage_AdherenceModel = Field(default=None, alias="adherence", description="This indicates how or if the device is being used.") + informationSource_field: ReferenceModel = Field(default=None, alias="informationSource", description="Who reported the device was being used by the patient.") + device_field: CodeableReferenceModel = Field(default=None, alias="device", description="Code or Reference to device used.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Reason or justification for the use of the device. A coded concept, or another resource whose existence justifies this DeviceUsage.") + bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="Indicates the anotomic location on the subject's body where the device was used ( i.e. the target).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.") + +class DeviceUsage_AdherenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Type of adherence.") + reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="Reason for adherence type.") + +class DiagnosticReportModel(BaseModel): + resourceType_field: str = "DiagnosticReport" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this report by the performer or other systems.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Details concerning a service requested.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the diagnostic report.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposes.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code or name that describes this diagnostic report.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject of the report. Usually, but not always, this is a patient. However, diagnostic services also perform analyses on specimens collected from a variety of other sources.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.") + issued_field: instantModel = Field(default=None, alias="issued", description="The date and time that this version of the report was made available to providers, typically after the report was reviewed and verified.") + performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="The diagnostic service that is responsible for issuing the report.") + resultsInterpreter_field: List[ReferenceModel] = Field(default_factory=list, alias="resultsInterpreter", description="The practitioner or organization that is responsible for the report's conclusions and interpretations.") + specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="Details about the specimens on which this diagnostic report is based.") + result_field: List[ReferenceModel] = Field(default_factory=list, alias="result", description="[Observations](observation.html) that are part of this diagnostic report.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments about the diagnostic report.") + study_field: List[ReferenceModel] = Field(default_factory=list, alias="study", description="One or more links to full details of any study performed during the diagnostic investigation. An ImagingStudy might comprise a set of radiologic images obtained via a procedure that are analyzed as a group. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images. A GenomicStudy might comprise one or more analyses, each serving a specific purpose. These analyses may vary in method (e.g., karyotyping, CNV, or SNV detection), performer, software, devices used, or regions targeted.") + supportingInfo_field: List[DiagnosticReport_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="This backbone element contains supporting information that was used in the creation of the report not included in the results already included in the report.") + media_field: List[DiagnosticReport_MediaModel] = Field(default_factory=list, alias="media", description="A list of key images or data associated with this report. The images or data are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).") + composition_field: ReferenceModel = Field(default=None, alias="composition", description="Reference to a Composition resource instance that provides structure for organizing the contents of the DiagnosticReport.") + conclusion_field: markdownModel = Field(default=None, alias="conclusion", description="Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic report.") + conclusionCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="conclusionCode", description="One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic report.") + presentedForm_field: List[AttachmentModel] = Field(default_factory=list, alias="presentedForm", description="Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.") + +class DiagnosticReport_SupportingInfoModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The code value for the role of the supporting information in the diagnostic report.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="The reference for the supporting information in the diagnostic report.") + +class DiagnosticReport_MediaModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + comment_field: stringModel = Field(default=None, alias="comment", description="A comment about the image or data. Typically, this is used to provide an explanation for why the image or data is included, or to draw the viewer's attention to important features.") + link_field: ReferenceModel = Field(default=None, alias="link", description="Reference to the image or data source.") + +class DocumentReferenceModel(BaseModel): + resourceType_field: str = "DocumentReference" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Other business identifiers associated with the document, including version independent identifiers.") + version_field: stringModel = Field(default=None, alias="version", description="An explicitly assigned identifer of a variation of the content in the DocumentReference.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A procedure that is fulfilled in whole or in part by the creation of this media.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this document reference.") + docStatus_field: codeModel = Field(default=None, alias="docStatus", description="The status of the underlying document.") + modality_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modality", description="Imaging modality used. This may include both acquisition and non-acquisition modalities.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A categorization for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).") + context_field: List[ReferenceModel] = Field(default_factory=list, alias="context", description="Describes the clinical encounter or type of care that the document content is associated with.") + event_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="event", description="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the type Code, such as a History and Physical Report in which the procedure being documented is necessarily a History and Physical act.") + bodySite_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="bodySite", description="The anatomic structures included in the document.") + facilityType_field: CodeableConceptModel = Field(default=None, alias="facilityType", description="The kind of facility where the patient was seen.") + practiceSetting_field: CodeableConceptModel = Field(default=None, alias="practiceSetting", description="This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty.") + period_field: PeriodModel = Field(default=None, alias="period", description="The time period over which the service that is described by the document was provided.") + date_field: instantModel = Field(default=None, alias="date", description="When the document reference was created.") + author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for adding the information to the document.") + attester_field: List[DocumentReference_AttesterModel] = Field(default_factory=list, alias="attester", description="A participant who has authenticated the accuracy of the document.") + custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.") + relatesTo_field: List[DocumentReference_RelatesToModel] = Field(default_factory=list, alias="relatesTo", description="Relationships that this document has with other document references that already exist.") + description_field: markdownModel = Field(default=None, alias="description", description="Human-readable description of the source document.") + securityLabel_field: List[CodeableConceptModel] = Field(default_factory=list, alias="securityLabel", description="A set of Security-Tag codes specifying the level of privacy/security of the Document found at DocumentReference.content.attachment.url. Note that DocumentReference.meta.security contains the security labels of the data elements in DocumentReference, while DocumentReference.securityLabel contains the security labels for the document the reference refers to. The distinction recognizes that the document may contain sensitive information, while the DocumentReference is metadata about the document and thus might not be as sensitive as the document. For example: a psychotherapy episode may contain highly sensitive information, while the metadata may simply indicate that some episode happened.") + content_field: List[DocumentReference_ContentModel] = Field(default_factory=list, alias="content", description="The document and format referenced. If there are multiple content element repetitions, these must all represent the same document in different format, or attachment metadata.") + +class DocumentReference_AttesterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + mode_field: CodeableConceptModel = Field(default=None, alias="mode", description="The type of attestation the authenticator offers.") + time_field: dateTimeModel = Field(default=None, alias="time", description="When the document was attested by the party.") + party_field: ReferenceModel = Field(default=None, alias="party", description="Who attested the document in the specified way.") + +class DocumentReference_RelatesToModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of relationship that this document has with anther document.") + target_field: ReferenceModel = Field(default=None, alias="target", description="The target document of this relationship.") + +class DocumentReference_ContentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + attachment_field: AttachmentModel = Field(default=None, alias="attachment", description="The document or URL of the document along with critical metadata to prove content has integrity.") + profile_field: List[DocumentReference_ProfileModel] = Field(default_factory=list, alias="profile", description="An identifier of the document constraints, encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.") + +class DocumentReference_ProfileModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Code|uri|canonical.") + +class EncounterModel(BaseModel): + resourceType_field: str = "Encounter" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier(s) by which this encounter is known.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the encounter (not the state of the patient within the encounter - that is subjectState).") + class_field: List[CodeableConceptModel] = Field(default_factory=list, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Indicates the urgency of the encounter.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") + serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="Broad categorization of the service that is to be provided (e.g. cardiology).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.") + subjectStatus_field: CodeableConceptModel = Field(default=None, alias="subjectStatus", description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.") + episodeOfCare_field: List[ReferenceModel] = Field(default_factory=list, alias="episodeOfCare", description="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The request this encounter satisfies (e.g. incoming referral or procedure request).") + careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="The group(s) of individuals, organizations that are allocated to participate in this encounter. The participants backbone will record the actuals of when these individuals participated during the encounter.") + partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="Another Encounter of which this encounter is a part of (administratively or in time).") + serviceProvider_field: ReferenceModel = Field(default=None, alias="serviceProvider", description="The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the colonoscopy example on the Encounter examples tab.") + participant_field: List[Encounter_ParticipantModel] = Field(default_factory=list, alias="participant", description="The list of people responsible for providing the service.") + appointment_field: List[ReferenceModel] = Field(default_factory=list, alias="appointment", description="The appointment that scheduled this encounter.") + virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. conference call).") + actualPeriod_field: PeriodModel = Field(default=None, alias="actualPeriod", description="The actual start and end time of the encounter.") + plannedStartDate_field: dateTimeModel = Field(default=None, alias="plannedStartDate", description="The planned start date/time (or admission date) of the encounter.") + plannedEndDate_field: dateTimeModel = Field(default=None, alias="plannedEndDate", description="The planned end date/time (or discharge date) of the encounter.") + length_field: DurationModel = Field(default=None, alias="length", description="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.") + reason_field: List[Encounter_ReasonModel] = Field(default_factory=list, alias="reason", description="The list of medical reasons that are expected to be addressed during the episode of care.") + diagnosis_field: List[Encounter_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="The list of diagnosis relevant to this encounter.") + account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that may be used for billing for this Encounter.") + dietPreference_field: List[CodeableConceptModel] = Field(default_factory=list, alias="dietPreference", description="Diet preferences reported by the patient.") + specialArrangement_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialArrangement", description="Any special requests that have been made for this encounter, such as the provision of specific equipment or other things.") + specialCourtesy_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialCourtesy", description="Special courtesies that may be provided to the patient during the encounter (VIP, board member, professional courtesy).") + admission_field: Encounter_AdmissionModel = Field(default=None, alias="admission", description="Details about the stay during which a healthcare service is provided.") + location_field: List[Encounter_LocationModel] = Field(default_factory=list, alias="location", description="List of locations where the patient has been during this encounter.") + +class Encounter_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Role of participant in encounter.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Person involved in the encounter, the patient/group is also included here to indicate that the patient was actually participating in the encounter. Not including the patient here covers use cases such as a case meeting between practitioners about a patient - non contact times.") + +class Encounter_ReasonModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).") + value_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="value", description="Reason the encounter takes place, expressed as a code or a reference to another resource. For admissions, this can be used for a coded admission diagnosis.") + +class Encounter_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + condition_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="condition", description="The coded diagnosis or a reference to a Condition (with other resources referenced in the evidence.detail), the use property will indicate the purpose of this specific diagnosis.") + use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).") + +class Encounter_AdmissionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + preAdmissionIdentifier_field: IdentifierModel = Field(default=None, alias="preAdmissionIdentifier", description="Pre-admission identifier.") + origin_field: ReferenceModel = Field(default=None, alias="origin", description="The location/organization from which the patient came before admission.") + admitSource_field: CodeableConceptModel = Field(default=None, alias="admitSource", description="From where patient was admitted (physician referral, transfer).") + reAdmission_field: CodeableConceptModel = Field(default=None, alias="reAdmission", description="Indicates that this encounter is directly related to a prior admission, often because the conditions addressed in the prior admission were not fully addressed.") + destination_field: ReferenceModel = Field(default=None, alias="destination", description="Location/organization to which the patient is discharged.") + dischargeDisposition_field: CodeableConceptModel = Field(default=None, alias="dischargeDisposition", description="Category or kind of location after discharge.") + +class Encounter_LocationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the encounter takes place.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.") + form_field: CodeableConceptModel = Field(default=None, alias="form", description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the patient was present at the location.") + +class EncounterHistoryModel(BaseModel): + resourceType_field: str = "EncounterHistory" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter associated with this set of historic values.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier(s) by which this encounter is known.") + status_field: codeModel = Field(default=None, alias="status", description="planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown.") + class_field: CodeableConceptModel = Field(default=None, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") + serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="Broad categorization of the service that is to be provided (e.g. cardiology).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.") + subjectStatus_field: CodeableConceptModel = Field(default=None, alias="subjectStatus", description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.") + actualPeriod_field: PeriodModel = Field(default=None, alias="actualPeriod", description="The start and end time associated with this set of values associated with the encounter, may be different to the planned times for various reasons.") + plannedStartDate_field: dateTimeModel = Field(default=None, alias="plannedStartDate", description="The planned start date/time (or admission date) of the encounter.") + plannedEndDate_field: dateTimeModel = Field(default=None, alias="plannedEndDate", description="The planned end date/time (or discharge date) of the encounter.") + length_field: DurationModel = Field(default=None, alias="length", description="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.") + location_field: List[EncounterHistory_LocationModel] = Field(default_factory=list, alias="location", description="The location of the patient at this point in the encounter, the multiple cardinality permits de-normalizing the levels of the location hierarchy, such as site/ward/room/bed.") + +class EncounterHistory_LocationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the encounter takes place.") + form_field: CodeableConceptModel = Field(default=None, alias="form", description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") + +class EndpointModel(BaseModel): + resourceType_field: str = "Endpoint" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the organization that is used to identify the endpoint across multiple disparate systems.") + status_field: codeModel = Field(default=None, alias="status", description="The endpoint status represents the general expected availability of an endpoint.") + connectionType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="connectionType", description="A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook).") + name_field: stringModel = Field(default=None, alias="name", description="A friendly name that this endpoint can be referred to with.") + description_field: stringModel = Field(default=None, alias="description", description="The description of the endpoint and what it is for (typically used as supplemental information in an endpoint directory describing its usage/purpose).") + environmentType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="environmentType", description="The type of environment(s) exposed at this endpoint (dev, prod, test, etc.).") + managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization that manages this endpoint (even if technically another organization is hosting this in the cloud, it is the organization associated with the data).") + contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for a human to contact about the endpoint. The primary use of this for system administrator troubleshooting.") + period_field: PeriodModel = Field(default=None, alias="period", description="The interval during which the endpoint is expected to be operational.") + payload_field: List[Endpoint_PayloadModel] = Field(default_factory=list, alias="payload", description="The set of payloads that are provided/available at this endpoint.") + address_field: urlModel = Field(default=None, alias="address", description="The uri that describes the actual end-point to connect to.") + header_field: List[stringModel] = Field(default_factory=list, alias="header", description="Additional headers / information to send as part of the notification.") + +class Endpoint_PayloadModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The payload type describes the acceptable content that can be communicated on the endpoint.") + mimeType_field: List[codeModel] = Field(default_factory=list, alias="mimeType", description="The mime type to send the payload in - e.g. application/fhir+xml, application/fhir+json. If the mime type is not specified, then the sender could send any content (including no content depending on the connectionType).") + +class EnrollmentRequestModel(BaseModel): + resourceType_field: str = "EnrollmentRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The Response business identifier.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date when this resource was created.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who is target of the request.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="The practitioner who is responsible for the services rendered to the patient.") + candidate_field: ReferenceModel = Field(default=None, alias="candidate", description="Patient Resource.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the program or plan identification, underwriter or payor.") + +class EnrollmentResponseModel(BaseModel): + resourceType_field: str = "EnrollmentResponse" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The Response business identifier.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + request_field: ReferenceModel = Field(default=None, alias="request", description="Original request resource reference.") + outcome_field: codeModel = Field(default=None, alias="outcome", description="Processing status: error, complete.") + disposition_field: stringModel = Field(default=None, alias="disposition", description="A description of the status of the adjudication.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date when the enclosed suite of services were performed or completed.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="The Insurer who produced this adjudicated response.") + requestProvider_field: ReferenceModel = Field(default=None, alias="requestProvider", description="The practitioner who is responsible for the services rendered to the patient.") + +class EpisodeOfCareModel(BaseModel): + resourceType_field: str = "EpisodeOfCare" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.") + status_field: codeModel = Field(default=None, alias="status", description="planned | waitlist | active | onhold | finished | cancelled.") + statusHistory_field: List[EpisodeOfCare_StatusHistoryModel] = Field(default_factory=list, alias="statusHistory", description="The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.") + reason_field: List[EpisodeOfCare_ReasonModel] = Field(default_factory=list, alias="reason", description="The list of medical reasons that are expected to be addressed during the episode of care.") + diagnosis_field: List[EpisodeOfCare_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="The list of medical conditions that were addressed during the episode of care.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who is the focus of this episode of care.") + managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.") + period_field: PeriodModel = Field(default=None, alias="period", description="The interval during which the managing organization assumes the defined responsibility.") + referralRequest_field: List[ReferenceModel] = Field(default_factory=list, alias="referralRequest", description="Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.") + careManager_field: ReferenceModel = Field(default=None, alias="careManager", description="The practitioner that is the care manager/care coordinator for this patient.") + careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="The list of practitioners that may be facilitating this episode of care for specific purposes.") + account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that may be used for billing for this EpisodeOfCare.") + +class EpisodeOfCare_StatusHistoryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + status_field: codeModel = Field(default=None, alias="status", description="planned | waitlist | active | onhold | finished | cancelled.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period during this EpisodeOfCare that the specific status applied.") + +class EpisodeOfCare_ReasonModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + use_field: CodeableConceptModel = Field(default=None, alias="use", description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).") + value_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="value", description="The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource.") + +class EpisodeOfCare_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + condition_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="condition", description="The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource.") + use_field: CodeableConceptModel = Field(default=None, alias="use", description="Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …).") + +class EventDefinitionModel(BaseModel): + resourceType_field: str = "EventDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this event definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this event definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the event definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this event definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the event definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the event definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the event definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the event definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this event definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this event definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the event definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the event definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the event definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the event definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate event definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the event definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this event definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the event definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the event definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the event definition content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the module. Topics provide a high-level categorization of the module that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related resources such as additional documentation, justification, or bibliographic references.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the event definition giving additional information about its content.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code or group definition that describes the intended subject of the event definition.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code or group definition that describes the intended subject of the event definition.") + usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the event definition is used from a clinical perspective.") + trigger_field: List[TriggerDefinitionModel] = Field(default_factory=list, alias="trigger", description="The trigger element defines when the event occurs. If more than one trigger condition is specified, the event fires whenever any one of the trigger conditions is met.") + +class EvidenceModel(BaseModel): + resourceType_field: str = "Evidence" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this evidence when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this summary when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the summary when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the summary author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the summary.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this summary. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this resource is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the summary was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the summary changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the evidence.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the evidence from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this Evidence is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the Evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the Evidence.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual, organization, or device primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individiual, organization, or device primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individiual, organization, or device primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individiual, organization, or device responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Link or citation to artifact associated with the summary.") + citeAsReference_field: ReferenceModel = Field(default=None, alias="citeAsReference", description="Citation Resource or display of suggested citation for this evidence.") + assertion_field: markdownModel = Field(default=None, alias="assertion", description="Declarative description of the Evidence.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") + variableDefinition_field: List[Evidence_VariableDefinitionModel] = Field(default_factory=list, alias="variableDefinition", description="Evidence variable such as population, exposure, or outcome.") + synthesisType_field: CodeableConceptModel = Field(default=None, alias="synthesisType", description="The method to combine studies.") + studyDesign_field: List[CodeableConceptModel] = Field(default_factory=list, alias="studyDesign", description="The design of the study that produced this evidence. The design is described with any number of study design characteristics.") + statistic_field: List[Evidence_StatisticModel] = Field(default_factory=list, alias="statistic", description="Values and parameters for a single statistic.") + certainty_field: List[Evidence_CertaintyModel] = Field(default_factory=list, alias="certainty", description="Assessment of certainty, confidence in the estimates, or quality of the evidence.") + +class Evidence_VariableDefinitionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="A text description or summary of the variable.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") + variableRole_field: CodeableConceptModel = Field(default=None, alias="variableRole", description="population | subpopulation | exposure | referenceExposure | measuredVariable | confounder.") + observed_field: ReferenceModel = Field(default=None, alias="observed", description="Definition of the actual variable related to the statistic(s).") + intended_field: ReferenceModel = Field(default=None, alias="intended", description="Definition of the intended variable related to the Evidence.") + directnessMatch_field: CodeableConceptModel = Field(default=None, alias="directnessMatch", description="Indication of quality of match between intended variable to actual variable.") + +class Evidence_StatisticModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="A description of the content value of the statistic.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") + statisticType_field: CodeableConceptModel = Field(default=None, alias="statisticType", description="Type of statistic, e.g., relative risk.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="When the measured variable is handled categorically, the category element is used to define which category the statistic is reporting.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Statistic value.") + numberOfEvents_field: unsignedIntModel = Field(default=None, alias="numberOfEvents", description="The number of events associated with the statistic, where the unit of analysis is different from numberAffected, sampleSize.knownDataCount and sampleSize.numberOfParticipants.") + numberAffected_field: unsignedIntModel = Field(default=None, alias="numberAffected", description="The number of participants affected where the unit of analysis is the same as sampleSize.knownDataCount and sampleSize.numberOfParticipants.") + sampleSize_field: Evidence_SampleSizeModel = Field(default=None, alias="sampleSize", description="Number of samples in the statistic.") + attributeEstimate_field: List[Evidence_AttributeEstimateModel] = Field(default_factory=list, alias="attributeEstimate", description="A statistical attribute of the statistic such as a measure of heterogeneity.") + modelCharacteristic_field: List[Evidence_ModelCharacteristicModel] = Field(default_factory=list, alias="modelCharacteristic", description="A component of the method to generate the statistic.") + +class Evidence_SampleSizeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Human-readable summary of population sample size.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnote or explanatory note about the sample size.") + numberOfStudies_field: unsignedIntModel = Field(default=None, alias="numberOfStudies", description="Number of participants in the population.") + numberOfParticipants_field: unsignedIntModel = Field(default=None, alias="numberOfParticipants", description="A human-readable string to clarify or explain concepts about the sample size.") + knownDataCount_field: unsignedIntModel = Field(default=None, alias="knownDataCount", description="Number of participants with known results for measured variables.") + +class Evidence_AttributeEstimateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Human-readable summary of the estimate.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnote or explanatory note about the estimate.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of attribute estimate, e.g., confidence interval or p value.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The singular quantity of the attribute estimate, for attribute estimates represented as single values; also used to report unit of measure.") + level_field: decimalModel = Field(default=None, alias="level", description="Use 95 for a 95% confidence interval.") + range_field: RangeModel = Field(default=None, alias="range", description="Lower bound of confidence interval.") + attributeEstimate_field: List[Evidence_AttributeEstimateModel] = Field(default_factory=list, alias="attributeEstimate", description="A nested attribute estimate; which is the attribute estimate of an attribute estimate.") + +class Evidence_ModelCharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Description of a component of the method to generate the statistic.") + value_field: QuantityModel = Field(default=None, alias="value", description="Further specification of the quantified value of the component of the method to generate the statistic.") + variable_field: List[Evidence_VariableModel] = Field(default_factory=list, alias="variable", description="A variable adjusted for in the adjusted analysis.") + attributeEstimate_field: List[Evidence_AttributeEstimateModel] = Field(default_factory=list, alias="attributeEstimate", description="An attribute of the statistic used as a model characteristic.") + +class Evidence_VariableModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + variableDefinition_field: ReferenceModel = Field(default=None, alias="variableDefinition", description="Description of the variable.") + handling_field: codeModel = Field(default=None, alias="handling", description="How the variable is classified for use in adjusted analysis.") + valueCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="valueCategory", description="Description for grouping of ordinal or polychotomous variables.") + valueQuantity_field: List[QuantityModel] = Field(default_factory=list, alias="valueQuantity", description="Discrete value for grouping of ordinal or polychotomous variables.") + valueRange_field: List[RangeModel] = Field(default_factory=list, alias="valueRange", description="Range of values for grouping of ordinal or polychotomous variables.") + +class Evidence_CertaintyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Textual description of certainty.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Aspect of certainty being rated.") + rating_field: CodeableConceptModel = Field(default=None, alias="rating", description="Assessment or judgement of the aspect.") + rater_field: stringModel = Field(default=None, alias="rater", description="Individual or group who did the rating.") + subcomponent_field: List[Evidence_CertaintyModel] = Field(default_factory=list, alias="subcomponent", description="A domain or subdomain of certainty.") + +class EvidenceReportModel(BaseModel): + resourceType_field: str = "EvidenceReport" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the {{title}} when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the {{title}} author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence without additional knowledge. (See the versionAlgorithm element.)") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the {{title}}. This name should be usable as an identifier for the resource by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the {{title}}.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this summary. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this {{title}} is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the {{title}} was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the {{title}} changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the evidence report.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the {{title}} from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this {{title}} is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual, organization, or device primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individiual, organization, or device primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individiual, organization, or device primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individiual, organization, or device responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Link, description or reference to artifact associated with the report.") + relatedIdentifier_field: List[IdentifierModel] = Field(default_factory=list, alias="relatedIdentifier", description="A formal identifier that is used to identify things closely related to this EvidenceReport.") + citeAsReference_field: ReferenceModel = Field(default=None, alias="citeAsReference", description="Citation Resource or display of suggested citation for this report.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Used for footnotes and annotations.") + subject_field: EvidenceReport_SubjectModel = Field(default=None, alias="subject", description="Specifies the subject or focus of the report. Answers What is this report about?.") + relatesTo_field: List[EvidenceReport_RelatesToModel] = Field(default_factory=list, alias="relatesTo", description="Relationships that this composition has with other compositions or documents that already exist.") + section_field: List[EvidenceReport_SectionModel] = Field(default_factory=list, alias="section", description="The root of the sections that make up the composition.") + +class EvidenceReport_SubjectModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + characteristic_field: List[EvidenceReport_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Characteristic.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Used for general notes and annotations not coded elsewhere.") + +class EvidenceReport_CharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Characteristic code.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Characteristic value.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Characteristic value.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Characteristic value.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Characteristic value.") + exclude_field: booleanModel = Field(default=None, alias="exclude", description="Is used to express not the characteristic.") + period_field: PeriodModel = Field(default=None, alias="period", description="Timeframe for the characteristic.") + +class EvidenceReport_RelatesToModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="The type of relationship that this composition has with anther composition or document.") + target_field: EvidenceReport_TargetModel = Field(default=None, alias="target", description="The target composition/document of this relationship.") + +class EvidenceReport_TargetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="Target of the relationship URL.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Target of the relationship Identifier.") + display_field: markdownModel = Field(default=None, alias="display", description="Target of the relationship Display.") + resource_field: ReferenceModel = Field(default=None, alias="resource", description="Target of the relationship Resource reference.") + +class EvidenceReport_SectionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.") + focus_field: CodeableConceptModel = Field(default=None, alias="focus", description="A code identifying the kind of content contained within the section. This should be consistent with the section title.") + focusReference_field: ReferenceModel = Field(default=None, alias="focusReference", description="A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title.") + author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for the information in this section, not necessarily who typed it in.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative.") + mode_field: codeModel = Field(default=None, alias="mode", description="How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.") + orderedBy_field: CodeableConceptModel = Field(default=None, alias="orderedBy", description="Specifies the order applied to the items in the section entries.") + entryClassifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="entryClassifier", description="Specifies any type of classification of the evidence report.") + entryReference_field: List[ReferenceModel] = Field(default_factory=list, alias="entryReference", description="A reference to the actual resource from which the narrative in the section is derived.") + entryQuantity_field: List[QuantityModel] = Field(default_factory=list, alias="entryQuantity", description="Quantity as content.") + emptyReason_field: CodeableConceptModel = Field(default=None, alias="emptyReason", description="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.") + section_field: List[EvidenceReport_SectionModel] = Field(default_factory=list, alias="section", description="A nested sub-section within this section.") + +class EvidenceVariableModel(BaseModel): + resourceType_field: str = "EvidenceVariable" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this evidence variable when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this evidence variable is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence variable is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this evidence variable when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the evidence variable when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence variable author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the evidence variable. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the evidence variable.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this evidence variable. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this resource is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the evidence variable was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the evidence variable changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the evidence variable.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the evidence variable from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence variable instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this EvidenceVariable is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the resource and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the resource.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the resource content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") + shortTitle_field: stringModel = Field(default=None, alias="shortTitle", description="The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A human-readable string to clarify or explain concepts about the resource.") + actual_field: booleanModel = Field(default=None, alias="actual", description="True if the actual variable measured, false if a conceptual representation of the intended variable.") + characteristic_field: List[EvidenceVariable_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="A defining factor of the EvidenceVariable. Multiple characteristics are applied with and semantics.") + handling_field: codeModel = Field(default=None, alias="handling", description="The method of handling in statistical analysis.") + category_field: List[EvidenceVariable_CategoryModel] = Field(default_factory=list, alias="category", description="A grouping for ordinal or polychotomous variables.") + +class EvidenceVariable_CharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: idModel = Field(default=None, alias="linkId", description="Label used for when a characteristic refers to another characteristic.") + description_field: markdownModel = Field(default=None, alias="description", description="A short, natural language description of the characteristic that could be used to communicate the criteria to an end-user.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A human-readable string to clarify or explain concepts about the characteristic.") + exclude_field: booleanModel = Field(default=None, alias="exclude", description="When true, this characteristic is an exclusion criterion. In other words, not matching this characteristic definition is equivalent to meeting this criterion.") + definitionReference_field: ReferenceModel = Field(default=None, alias="definitionReference", description="Defines the characteristic using a Reference.") + definitionCanonical_field: canonicalModel = Field(default=None, alias="definitionCanonical", description="Defines the characteristic using Canonical.") + definitionCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="definitionCodeableConcept", description="Defines the characteristic using CodeableConcept.") + definitionExpression_field: ExpressionModel = Field(default=None, alias="definitionExpression", description="Defines the characteristic using Expression.") + definitionId_field: idModel = Field(default=None, alias="definitionId", description="Defines the characteristic using id.") + definitionByTypeAndValue_field: EvidenceVariable_DefinitionByTypeAndValueModel = Field(default=None, alias="definitionByTypeAndValue", description="Defines the characteristic using both a type and value[x] elements.") + definitionByCombination_field: EvidenceVariable_DefinitionByCombinationModel = Field(default=None, alias="definitionByCombination", description="Defines the characteristic as a combination of two or more characteristics.") + instancesQuantity_field: QuantityModel = Field(default=None, alias="instancesQuantity", description="Number of occurrences meeting the characteristic.") + instancesRange_field: RangeModel = Field(default=None, alias="instancesRange", description="Number of occurrences meeting the characteristic.") + durationQuantity_field: QuantityModel = Field(default=None, alias="durationQuantity", description="Length of time in which the characteristic is met.") + durationRange_field: RangeModel = Field(default=None, alias="durationRange", description="Length of time in which the characteristic is met.") + timeFromEvent_field: List[EvidenceVariable_TimeFromEventModel] = Field(default_factory=list, alias="timeFromEvent", description="Timing in which the characteristic is determined.") + +class EvidenceVariable_DefinitionByTypeAndValueModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Used to express the type of characteristic.") + method_field: List[CodeableConceptModel] = Field(default_factory=list, alias="method", description="Method for how the characteristic value was determined.") + device_field: ReferenceModel = Field(default=None, alias="device", description="Device used for determining characteristic.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Defines the characteristic when paired with characteristic.type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Defines the characteristic when paired with characteristic.type.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Defines the characteristic when paired with characteristic.type.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Defines the characteristic when paired with characteristic.type.") + offset_field: CodeableConceptModel = Field(default=None, alias="offset", description="Defines the reference point for comparison when valueQuantity or valueRange is not compared to zero.") + +class EvidenceVariable_DefinitionByCombinationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Used to specify if two or more characteristics are combined with OR or AND.") + threshold_field: positiveIntModel = Field(default=None, alias="threshold", description="Provides the value of n when at-least or at-most codes are used.") + characteristic_field: List[EvidenceVariable_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="A defining factor of the characteristic.") + +class EvidenceVariable_TimeFromEventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Human readable description.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A human-readable string to clarify or explain concepts about the timeFromEvent.") + eventCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="eventCodeableConcept", description="The event used as a base point (reference point) in time.") + eventReference_field: ReferenceModel = Field(default=None, alias="eventReference", description="The event used as a base point (reference point) in time.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Used to express the observation at a defined amount of time before or after the event.") + range_field: RangeModel = Field(default=None, alias="range", description="Used to express the observation within a period before and/or after the event.") + +class EvidenceVariable_CategoryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Description of the grouping.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Definition of the grouping.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Definition of the grouping.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Definition of the grouping.") + +class ExampleScenarioModel(BaseModel): + resourceType_field: str = "ExampleScenario" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this example scenario when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="Temporarily retained for tooling purposes.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the ExampleScenario.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this example scenario. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the example scenario was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the example scenario changes. (e.g. the 'content logical definition').") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the ExampleScenario from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate example scenario instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the example scenario is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + actor_field: List[ExampleScenario_ActorModel] = Field(default_factory=list, alias="actor", description="A system or person who shares or receives an instance within the scenario.") + instance_field: List[ExampleScenario_InstanceModel] = Field(default_factory=list, alias="instance", description="A single data collection that is shared as part of the scenario.") + process_field: List[ExampleScenario_ProcessModel] = Field(default_factory=list, alias="process", description="A group of operations that represents a significant step within a scenario.") + +class ExampleScenario_ActorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + key_field: stringModel = Field(default=None, alias="key", description="A unique string within the scenario that is used to reference the actor.") + type_field: codeModel = Field(default=None, alias="type", description="The category of actor - person or system.") + title_field: stringModel = Field(default=None, alias="title", description="The human-readable name for the actor used when rendering the scenario.") + description_field: markdownModel = Field(default=None, alias="description", description="An explanation of who/what the actor is and its role in the scenario.") + +class ExampleScenario_InstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + key_field: stringModel = Field(default=None, alias="key", description="A unique string within the scenario that is used to reference the instance.") + structureType_field: CodingModel = Field(default=None, alias="structureType", description="A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.") + structureVersion_field: stringModel = Field(default=None, alias="structureVersion", description="Conveys the version of the data structure instantiated. I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.") + title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the instance to be used in tables or diagrams.") + description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what the instance contains and what it's for.") + content_field: ReferenceModel = Field(default=None, alias="content", description="Points to an instance (typically an example) that shows the data that would corespond to this instance.") + version_field: List[ExampleScenario_VersionModel] = Field(default_factory=list, alias="version", description="Represents the instance as it was at a specific time-point.") + containedInstance_field: List[ExampleScenario_ContainedInstanceModel] = Field(default_factory=list, alias="containedInstance", description="References to other instances that can be found within this instance (e.g. the observations contained in a bundle).") + +class ExampleScenario_VersionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + key_field: stringModel = Field(default=None, alias="key", description="A unique string within the instance that is used to reference the version of the instance.") + title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the version to be used in tables or diagrams.") + description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what this specific version of the instance contains and represents.") + content_field: ReferenceModel = Field(default=None, alias="content", description="Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.") + +class ExampleScenario_ContainedInstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + instanceReference_field: stringModel = Field(default=None, alias="instanceReference", description="A reference to the key of an instance found within this one.") + versionReference_field: stringModel = Field(default=None, alias="versionReference", description="A reference to the key of a specific version of an instance in this instance.") + +class ExampleScenario_ProcessModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the process to be used in tables or diagrams.") + description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what the process represents and what it does.") + preConditions_field: markdownModel = Field(default=None, alias="preConditions", description="Description of the initial state of the actors, environment and data before the process starts.") + postConditions_field: markdownModel = Field(default=None, alias="postConditions", description="Description of the final state of the actors, environment and data after the process has been successfully completed.") + step_field: List[ExampleScenario_StepModel] = Field(default_factory=list, alias="step", description="A significant action that occurs as part of the process.") + +class ExampleScenario_StepModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + number_field: stringModel = Field(default=None, alias="number", description="The sequential number of the step, e.g. 1.2.5.") + process_field: ExampleScenario_ProcessModel = Field(default=None, alias="process", description="Indicates that the step is a complex sub-process with its own steps.") + workflow_field: canonicalModel = Field(default=None, alias="workflow", description="Indicates that the step is defined by a seaparate scenario instance.") + operation_field: ExampleScenario_OperationModel = Field(default=None, alias="operation", description="The step represents a single operation invoked on receiver by sender.") + alternative_field: List[ExampleScenario_AlternativeModel] = Field(default_factory=list, alias="alternative", description="Indicates an alternative step that can be taken instead of the sub-process, scenario or operation. E.g. to represent non-happy-path/exceptional/atypical circumstances.") + pause_field: booleanModel = Field(default=None, alias="pause", description="If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).") + +class ExampleScenario_OperationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodingModel = Field(default=None, alias="type", description="The standardized type of action (FHIR or otherwise).") + title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the step to be used in tables or diagrams.") + initiator_field: stringModel = Field(default=None, alias="initiator", description="The system that invokes the action/transmits the data.") + receiver_field: stringModel = Field(default=None, alias="receiver", description="The system on which the action is invoked/receives the data.") + description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what the operation represents and what it does.") + initiatorActive_field: booleanModel = Field(default=None, alias="initiatorActive", description="If false, the initiator is deactivated right after the operation.") + receiverActive_field: booleanModel = Field(default=None, alias="receiverActive", description="If false, the receiver is deactivated right after the operation.") + request_field: ExampleScenario_ContainedInstanceModel = Field(default=None, alias="request", description="A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.") + response_field: ExampleScenario_ContainedInstanceModel = Field(default=None, alias="response", description="A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).") + +class ExampleScenario_AlternativeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.") + description_field: markdownModel = Field(default=None, alias="description", description="A human-readable description of the alternative explaining when the alternative should occur rather than the base step.") + step_field: List[ExampleScenario_StepModel] = Field(default_factory=list, alias="step", description="Indicates the operation, sub-process or scenario that happens if the alternative option is selected.") + +class ExplanationOfBenefitModel(BaseModel): + resourceType_field: str = "ExplanationOfBenefit" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this explanation of benefit.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of claim, e.g. oral, pharmacy, vision, institutional, professional.") + subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") + use_field: codeModel = Field(default=None, alias="use", description="A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for forecast reimbursement is sought.") + billablePeriod_field: PeriodModel = Field(default=None, alias="billablePeriod", description="The period for which charges are being submitted.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") + enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Individual who created the claim, predetermination or preauthorization.") + insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The party responsible for authorization, adjudication and reimbursement.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="The provider which is responsible for the claim, predetermination or preauthorization.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="The provider-required urgency of processing the request. Typical values include: stat, normal deferred.") + fundsReserveRequested_field: CodeableConceptModel = Field(default=None, alias="fundsReserveRequested", description="A code to indicate whether and for whom funds are to be reserved for future claims.") + fundsReserve_field: CodeableConceptModel = Field(default=None, alias="fundsReserve", description="A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom.") + related_field: List[ExplanationOfBenefit_RelatedModel] = Field(default_factory=list, alias="related", description="Other claims which are related to this claim such as prior submissions or claims for related services or for the same event.") + prescription_field: ReferenceModel = Field(default=None, alias="prescription", description="Prescription is the document/authorization given to the claim author for them to provide products and services for which consideration (reimbursement) is sought. Could be a RX for medications, an 'order' for oxygen or wheelchair or physiotherapy treatments.") + originalPrescription_field: ReferenceModel = Field(default=None, alias="originalPrescription", description="Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products.") + event_field: List[ExplanationOfBenefit_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") + payee_field: ExplanationOfBenefit_PayeeModel = Field(default=None, alias="payee", description="The party to be reimbursed for cost of the products and services according to the terms of the policy.") + referral_field: ReferenceModel = Field(default=None, alias="referral", description="The referral information received by the claim author, it is not to be used when the author generates a referral for a patient. A copy of that referral may be provided as supporting information. Some insurers require proof of referral to pay for services or to pay specialist rates for services.") + encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") + facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services were provided.") + claim_field: ReferenceModel = Field(default=None, alias="claim", description="The business identifier for the instance of the adjudication request: claim predetermination or preauthorization.") + claimResponse_field: ReferenceModel = Field(default=None, alias="claimResponse", description="The business identifier for the instance of the adjudication response: claim, predetermination or preauthorization response.") + outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of the claim, predetermination, or preauthorization processing.") + decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") + disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the adjudication.") + preAuthRef_field: List[stringModel] = Field(default_factory=list, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") + preAuthRefPeriod_field: List[PeriodModel] = Field(default_factory=list, alias="preAuthRefPeriod", description="The timeframe during which the supplied preauthorization reference may be quoted on claims to obtain the adjudication as provided.") + diagnosisRelatedGroup_field: CodeableConceptModel = Field(default=None, alias="diagnosisRelatedGroup", description="A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system.") + careTeam_field: List[ExplanationOfBenefit_CareTeamModel] = Field(default_factory=list, alias="careTeam", description="The members of the team who provided the products and services.") + supportingInfo_field: List[ExplanationOfBenefit_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues.") + diagnosis_field: List[ExplanationOfBenefit_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="Information about diagnoses relevant to the claim items.") + procedure_field: List[ExplanationOfBenefit_ProcedureModel] = Field(default_factory=list, alias="procedure", description="Procedures performed on the patient relevant to the billing items with the claim.") + precedence_field: positiveIntModel = Field(default=None, alias="precedence", description="This indicates the relative order of a series of EOBs related to different coverages for the same suite of services.") + insurance_field: List[ExplanationOfBenefit_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services specified on the claim.") + accident_field: ExplanationOfBenefit_AccidentModel = Field(default=None, alias="accident", description="Details of a accident which resulted in injuries which required the products and services listed in the claim.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + item_field: List[ExplanationOfBenefit_ItemModel] = Field(default_factory=list, alias="item", description="A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details.") + addItem_field: List[ExplanationOfBenefit_AddItemModel] = Field(default_factory=list, alias="addItem", description="The first-tier service adjudications for payor added product or service lines.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results which are presented at the header level rather than at the line-item or add-item levels.") + total_field: List[ExplanationOfBenefit_TotalModel] = Field(default_factory=list, alias="total", description="Categorized monetary totals for the adjudication.") + payment_field: ExplanationOfBenefit_PaymentModel = Field(default=None, alias="payment", description="Payment details for the adjudication of the claim.") + formCode_field: CodeableConceptModel = Field(default=None, alias="formCode", description="A code for the form to be used for printing the content.") + form_field: AttachmentModel = Field(default=None, alias="form", description="The actual form, by reference or inclusion, for printing the content or an EOB.") + processNote_field: List[ExplanationOfBenefit_ProcessNoteModel] = Field(default_factory=list, alias="processNote", description="A note that describes or explains adjudication results in a human readable form.") + benefitPeriod_field: PeriodModel = Field(default=None, alias="benefitPeriod", description="The term of the benefits documented in this response.") + benefitBalance_field: List[ExplanationOfBenefit_BenefitBalanceModel] = Field(default_factory=list, alias="benefitBalance", description="Balance by Benefit Category.") + +class ExplanationOfBenefit_RelatedModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + claim_field: ReferenceModel = Field(default=None, alias="claim", description="Reference to a related claim.") + relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="A code to convey how the claims are related.") + reference_field: IdentifierModel = Field(default=None, alias="reference", description="An alternate organizational reference to the case or file to which this particular claim pertains.") + +class ExplanationOfBenefit_EventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") + whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") + +class ExplanationOfBenefit_PayeeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Party to be reimbursed: Subscriber, provider, other.") + party_field: ReferenceModel = Field(default=None, alias="party", description="Reference to the individual or organization to whom any payment will be made.") + +class ExplanationOfBenefit_CareTeamModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify care team entries.") + provider_field: ReferenceModel = Field(default=None, alias="provider", description="Member of the team who provided the product or service.") + responsible_field: booleanModel = Field(default=None, alias="responsible", description="The party who is billing and/or responsible for the claimed products or services.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team.") + specialty_field: CodeableConceptModel = Field(default=None, alias="specialty", description="The specialization of the practitioner or provider which is applicable for this service.") + +class ExplanationOfBenefit_SupportingInfoModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify supporting information entries.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="The general class of the information supplied: information; exception; accident, employment; onset, etc.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient for which care is sought.") + timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="The date when or period to which this information refers.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") + reason_field: CodingModel = Field(default=None, alias="reason", description="Provides the reason in the situation where a reason code is required in addition to the content.") + +class ExplanationOfBenefit_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify diagnosis entries.") + diagnosisCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="diagnosisCodeableConcept", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") + diagnosisReference_field: ReferenceModel = Field(default=None, alias="diagnosisReference", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") + onAdmission_field: CodeableConceptModel = Field(default=None, alias="onAdmission", description="Indication of whether the diagnosis was present on admission to a facility.") + +class ExplanationOfBenefit_ProcedureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify procedure entries.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Date and optionally time the procedure was performed.") + procedureCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="procedureCodeableConcept", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") + procedureReference_field: ReferenceModel = Field(default=None, alias="procedureReference", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + +class ExplanationOfBenefit_InsuranceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true.") + coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") + preAuthRef_field: List[stringModel] = Field(default_factory=list, alias="preAuthRef", description="Reference numbers previously provided by the insurer to the provider to be quoted on subsequent claims containing services or products related to the prior authorization.") + +class ExplanationOfBenefit_AccidentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + date_field: dateModel = Field(default=None, alias="date", description="Date of an accident event related to the products and services contained in the claim.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers.") + locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="The physical location of the accident event.") + locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="The physical location of the accident event.") + +class ExplanationOfBenefit_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") + careTeamSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="careTeamSequence", description="Care team members related to this service or product.") + diagnosisSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="diagnosisSequence", description="Diagnoses applicable for this service or product.") + procedureSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="procedureSequence", description="Procedures applicable for this service or product.") + informationSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="informationSequence", description="Exceptions, special conditions and supporting information applicable for this service or product.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") + locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") + locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") + locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item. Net = unit price * quantity * factor.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + bodySite_field: List[ExplanationOfBenefit_BodySiteModel] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") + encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item.") + detail_field: List[ExplanationOfBenefit_DetailModel] = Field(default_factory=list, alias="detail", description="Second-tier of goods and services.") + +class ExplanationOfBenefit_BodySiteModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") + subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") + +class ExplanationOfBenefit_ReviewOutcomeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") + reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="The reasons for the result of the claim, predetermination, or preauthorization adjudication.") + preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") + preAuthPeriod_field: PeriodModel = Field(default=None, alias="preAuthPeriod", description="The time frame during which this authorization is effective.") + +class ExplanationOfBenefit_AdjudicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in-aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="A code supporting the understanding of the adjudication result and explaining variance from expected amount.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary amount associated with the category.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="A non-monetary value associated with the category. Mutually exclusive to the amount element above.") + +class ExplanationOfBenefit_DetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item.detail. Net = unit price * quantity * factor.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + subDetail_field: List[ExplanationOfBenefit_SubDetailModel] = Field(default_factory=list, alias="subDetail", description="Third-tier of goods and services.") + +class ExplanationOfBenefit_SubDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the line item.detail.subDetail. Net = unit price * quantity * factor.") + udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + +class ExplanationOfBenefit_AddItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + itemSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="itemSequence", description="Claim items which this service line is intended to replace.") + detailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="detailSequence", description="The sequence number of the details within the claim item which this line is intended to replace.") + subDetailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="subDetailSequence", description="The sequence number of the sub-details woithin the details within the claim item which this line is intended to replace.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + provider_field: List[ReferenceModel] = Field(default_factory=list, alias="provider", description="The providers who are authorized for the services rendered to the patient.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") + locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") + locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") + locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem. Net = unit price * quantity * factor.") + bodySite_field: List[ExplanationOfBenefit_BodySite1Model] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + detail_field: List[ExplanationOfBenefit_Detail1Model] = Field(default_factory=list, alias="detail", description="The second-tier service adjudications for payor added services.") + +class ExplanationOfBenefit_BodySite1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") + subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") + +class ExplanationOfBenefit_Detail1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem.detail. Net = unit price * quantity * factor.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + subDetail_field: List[ExplanationOfBenefit_SubDetail1Model] = Field(default_factory=list, alias="subDetail", description="The third-tier service adjudications for payor added services.") + +class ExplanationOfBenefit_SubDetail1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") + revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") + productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") + productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") + modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") + patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") + unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") + factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") + tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") + net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the addItem.detail.subDetail. Net = unit price * quantity * factor.") + noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") + reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") + adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") + +class ExplanationOfBenefit_TotalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary total amount associated with the category.") + +class ExplanationOfBenefit_PaymentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Whether this represents partial or complete payment of the benefits payable.") + adjustment_field: MoneyModel = Field(default=None, alias="adjustment", description="Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication.") + adjustmentReason_field: CodeableConceptModel = Field(default=None, alias="adjustmentReason", description="Reason for the payment adjustment.") + date_field: dateModel = Field(default=None, alias="date", description="Estimated date the payment will be issued or the actual issue date of payment.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Benefits payable less any payment adjustment.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Issuer's unique identifier for the payment instrument.") + +class ExplanationOfBenefit_ProcessNoteModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + number_field: positiveIntModel = Field(default=None, alias="number", description="A number to uniquely identify a note entry.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The business purpose of the note text.") + text_field: stringModel = Field(default=None, alias="text", description="The explanation or description associated with the processing.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="A code to define the language used in the text of the note.") + +class ExplanationOfBenefit_BenefitBalanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") + excluded_field: booleanModel = Field(default=None, alias="excluded", description="True if the indicated class of service is excluded from the plan, missing or False indicates the product or service is included in the coverage.") + name_field: stringModel = Field(default=None, alias="name", description="A short name or tag for the benefit.") + description_field: stringModel = Field(default=None, alias="description", description="A richer description of the benefit or services covered.") + network_field: CodeableConceptModel = Field(default=None, alias="network", description="Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers.") + unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Indicates if the benefits apply to an individual or to the family.") + term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'.") + financial_field: List[ExplanationOfBenefit_FinancialModel] = Field(default_factory=list, alias="financial", description="Benefits Used to date.") + +class ExplanationOfBenefit_FinancialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Classification of benefit being provided.") + allowedMoney_field: MoneyModel = Field(default=None, alias="allowedMoney", description="The quantity of the benefit which is permitted under the coverage.") + usedMoney_field: MoneyModel = Field(default=None, alias="usedMoney", description="The quantity of the benefit which have been consumed to date.") + +class FamilyMemberHistoryModel(BaseModel): + resourceType_field: str = "FamilyMemberHistory" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this FamilyMemberHistory.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this FamilyMemberHistory.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the status of the record of the family history of a specific family member.") + dataAbsentReason_field: CodeableConceptModel = Field(default=None, alias="dataAbsentReason", description="Describes why the family member's history is not available.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The person who this history concerns.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and possibly time) when the family member history was recorded or last updated.") + participant_field: List[FamilyMemberHistory_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the activities related to the family member history and how they were involved.") + name_field: stringModel = Field(default=None, alias="name", description="This will either be a name or a description; e.g. Aunt Susan, my cousin with the red hair.") + relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="The type of relationship this person has to the patient (father, mother, brother etc.).") + sex_field: CodeableConceptModel = Field(default=None, alias="sex", description="The birth sex of the family member.") + bornPeriod_field: PeriodModel = Field(default=None, alias="bornPeriod", description="The actual or approximate date of birth of the relative.") + ageAge_field: AgeModel = Field(default=None, alias="ageAge", description="The age of the relative at the time the family member history is recorded.") + ageRange_field: RangeModel = Field(default=None, alias="ageRange", description="The age of the relative at the time the family member history is recorded.") + estimatedAge_field: booleanModel = Field(default=None, alias="estimatedAge", description="If true, indicates that the age value specified is an estimated value.") + deceasedAge_field: AgeModel = Field(default=None, alias="deceasedAge", description="Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.") + deceasedRange_field: RangeModel = Field(default=None, alias="deceasedRange", description="Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the family member history occurred in coded or textual form, or Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.") + condition_field: List[FamilyMemberHistory_ConditionModel] = Field(default_factory=list, alias="condition", description="The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.") + procedure_field: List[FamilyMemberHistory_ProcedureModel] = Field(default_factory=list, alias="procedure", description="The significant Procedures (or procedure) that the family member had. This is a repeating section to allow a system to represent more than one procedure per resource, though there is nothing stopping multiple resources - one per procedure.") + +class FamilyMemberHistory_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the activities related to the family member history.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the activities related to the family member history.") + +class FamilyMemberHistory_ConditionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.") + outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="Indicates what happened following the condition. If the condition resulted in death, deceased date is captured on the relation.") + contributedToDeath_field: booleanModel = Field(default=None, alias="contributedToDeath", description="This condition contributed to the cause of death of the related person. If contributedToDeath is not populated, then it is unknown.") + onsetAge_field: AgeModel = Field(default=None, alias="onsetAge", description="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.") + onsetRange_field: RangeModel = Field(default=None, alias="onsetRange", description="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.") + onsetPeriod_field: PeriodModel = Field(default=None, alias="onsetPeriod", description="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="An area where general notes can be placed about this specific condition.") + +class FamilyMemberHistory_ProcedureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The actual procedure specified. Could be a coded procedure or a less specific string depending on how much is known about the procedure and the capabilities of the creating system.") + outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="Indicates what happened following the procedure. If the procedure resulted in death, deceased date is captured on the relation.") + contributedToDeath_field: booleanModel = Field(default=None, alias="contributedToDeath", description="This procedure contributed to the cause of death of the related person. If contributedToDeath is not populated, then it is unknown.") + performedAge_field: AgeModel = Field(default=None, alias="performedAge", description="Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + performedRange_field: RangeModel = Field(default=None, alias="performedRange", description="Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + performedPeriod_field: PeriodModel = Field(default=None, alias="performedPeriod", description="Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="An area where general notes can be placed about this specific procedure.") + +class FlagModel(BaseModel): + resourceType_field: str = "Flag" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + status_field: codeModel = Field(default=None, alias="status", description="Supports basic workflow.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The coded value or textual component of the flag to display to the user.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient, related person, location, group, organization, or practitioner etc. this is about record this flag is associated with.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This alert is only relevant during the encounter.") + author_field: ReferenceModel = Field(default=None, alias="author", description="The person, organization or device that created the flag.") + +class FormularyItemModel(BaseModel): + resourceType_field: str = "FormularyItem" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this formulary item.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code (or set of codes) that specify the product or service that is identified by this formulary item.") + status_field: codeModel = Field(default=None, alias="status", description="The validity about the information of the formulary item and not of the underlying product or service itself.") + +class GenomicStudyModel(BaseModel): + resourceType_field: str = "GenomicStudy" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers for this genomic study.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the genomic study.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The type of the study, e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The primary subject of the genomic study.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event with which this genomics study is associated.") + startDate_field: dateTimeModel = Field(default=None, alias="startDate", description="When the genomic study was started.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Event resources that the genomic study is based on.") + referrer_field: ReferenceModel = Field(default=None, alias="referrer", description="Healthcare professional who requested or referred the genomic study.") + interpreter_field: List[ReferenceModel] = Field(default_factory=list, alias="interpreter", description="Healthcare professionals who interpreted the genomic study.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Why the genomic study was performed.") + instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The defined protocol that describes the study.") + instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol that describes the study.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments related to the genomic study.") + description_field: markdownModel = Field(default=None, alias="description", description="Description of the genomic study.") + analysis_field: List[GenomicStudy_AnalysisModel] = Field(default_factory=list, alias="analysis", description="The details about a specific analysis that was performed in this GenomicStudy.") + +class GenomicStudy_AnalysisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers for the analysis event.") + methodType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="methodType", description="Type of the methods used in the analysis, e.g., Fluorescence in situ hybridization (FISH), Karyotyping, or Microsatellite instability testing (MSI).") + changeType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="changeType", description="Type of the genomic changes studied in the analysis, e.g., DNA, RNA, or amino acid change.") + genomeBuild_field: CodeableConceptModel = Field(default=None, alias="genomeBuild", description="The reference genome build that is used in this analysis.") + instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The defined protocol that describes the analysis.") + instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol that describes the analysis.") + title_field: stringModel = Field(default=None, alias="title", description="Name of the analysis event (human friendly).") + focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The focus of a genomic analysis when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, child, or sibling. For example, in trio testing, the GenomicStudy.subject would be the child (proband) and the GenomicStudy.analysis.focus of a specific analysis would be the parent.") + specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="The specimen used in the analysis event.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date of the analysis event.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any notes capture with the analysis event.") + protocolPerformed_field: ReferenceModel = Field(default=None, alias="protocolPerformed", description="The protocol that was performed for the analysis event.") + regionsStudied_field: List[ReferenceModel] = Field(default_factory=list, alias="regionsStudied", description="The genomic regions to be studied in the analysis (BED file).") + regionsCalled_field: List[ReferenceModel] = Field(default_factory=list, alias="regionsCalled", description="Genomic regions actually called in the analysis event (BED file).") + input_field: List[GenomicStudy_InputModel] = Field(default_factory=list, alias="input", description="Inputs for the analysis event.") + output_field: List[GenomicStudy_OutputModel] = Field(default_factory=list, alias="output", description="Outputs for the analysis event.") + performer_field: List[GenomicStudy_PerformerModel] = Field(default_factory=list, alias="performer", description="Performer for the analysis event.") + device_field: List[GenomicStudy_DeviceModel] = Field(default_factory=list, alias="device", description="Devices used for the analysis (e.g., instruments, software), with settings and parameters.") + +class GenomicStudy_InputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + file_field: ReferenceModel = Field(default=None, alias="file", description="File containing input data.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of input data, e.g., BAM, CRAM, or FASTA.") + generatedByIdentifier_field: IdentifierModel = Field(default=None, alias="generatedByIdentifier", description="The analysis event or other GenomicStudy that generated this input file.") + generatedByReference_field: ReferenceModel = Field(default=None, alias="generatedByReference", description="The analysis event or other GenomicStudy that generated this input file.") + +class GenomicStudy_OutputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + file_field: ReferenceModel = Field(default=None, alias="file", description="File containing output data.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of output data, e.g., VCF, MAF, or BAM.") + +class GenomicStudy_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The organization, healthcare professional, or others who participated in performing this analysis.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Role of the actor for this analysis.") + +class GenomicStudy_DeviceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + device_field: ReferenceModel = Field(default=None, alias="device", description="Device used for the analysis.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Specific function for the device used for the analysis.") + +class GoalModel(BaseModel): + resourceType_field: str = "Goal" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") + lifecycleStatus_field: codeModel = Field(default=None, alias="lifecycleStatus", description="The state of the goal throughout its lifecycle.") + achievementStatus_field: CodeableConceptModel = Field(default=None, alias="achievementStatus", description="Describes the progression, or lack thereof, towards the goal against the target.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Indicates a category the goal falls within.") + continuous_field: booleanModel = Field(default=None, alias="continuous", description="After meeting the goal, ongoing activity is needed to sustain the goal objective.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.") + description_field: CodeableConceptModel = Field(default=None, alias="description", description="Human-readable and/or coded description of a specific desired objective of care, such as control blood pressure or negotiate an obstacle course or dance with child at wedding.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient, group or organization for whom the goal is being established.") + startCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="startCodeableConcept", description="The date or event after which the goal should begin being pursued.") + target_field: List[Goal_TargetModel] = Field(default_factory=list, alias="target", description="Indicates what should be done by when.") + statusDate_field: dateModel = Field(default=None, alias="statusDate", description="Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.") + statusReason_field: stringModel = Field(default=None, alias="statusReason", description="Captures the reason for the current status.") + source_field: ReferenceModel = Field(default=None, alias="source", description="Indicates whose goal this is - patient goal, practitioner goal, etc.") + addresses_field: List[ReferenceModel] = Field(default_factory=list, alias="addresses", description="The identified conditions and other health record elements that are intended to be addressed by the goal.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any comments related to the goal.") + outcome_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="outcome", description="Identifies the change (or lack of change) at the point when the status of the goal is assessed.") + +class Goal_TargetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + measure_field: CodeableConceptModel = Field(default=None, alias="measure", description="The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.") + detailQuantity_field: QuantityModel = Field(default=None, alias="detailQuantity", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") + detailRange_field: RangeModel = Field(default=None, alias="detailRange", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") + detailCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="detailCodeableConcept", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") + detailRatio_field: RatioModel = Field(default=None, alias="detailRatio", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") + dueDuration_field: DurationModel = Field(default=None, alias="dueDuration", description="Indicates either the date or the duration after start by which the goal should be met.") + +class GraphDefinitionModel(BaseModel): + resourceType_field: str = "GraphDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this graph definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this graph definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the graph definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this GraphDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the graph definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the graph definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the graph definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the capability statement.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this graph definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this graph definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the graph definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the graph definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the graph definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the graph definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate graph definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the graph definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this graph definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the graph definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the graph definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + start_field: idModel = Field(default=None, alias="start", description="The Node at which instances of this graph start. If there is no nominated start, the graph can start at any of the nodes.") + node_field: List[GraphDefinition_NodeModel] = Field(default_factory=list, alias="node", description="Potential target for the link.") + link_field: List[GraphDefinition_LinkModel] = Field(default_factory=list, alias="link", description="Links this graph makes rules about.") + +class GraphDefinition_NodeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + nodeId_field: idModel = Field(default=None, alias="nodeId", description="Internal ID of node - target for link references.") + description_field: stringModel = Field(default=None, alias="description", description="Information about why this node is of interest in this graph definition.") + type_field: codeModel = Field(default=None, alias="type", description="Type of resource this link refers to.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="Profile for the target resource.") + +class GraphDefinition_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: stringModel = Field(default=None, alias="description", description="Information about why this link is of interest in this graph definition.") + min_field: integerModel = Field(default=None, alias="min", description="Minimum occurrences for this link.") + max_field: stringModel = Field(default=None, alias="max", description="Maximum occurrences for this link.") + sourceId_field: idModel = Field(default=None, alias="sourceId", description="The source node for this link.") + path_field: stringModel = Field(default=None, alias="path", description="A FHIRPath expression that identifies one of FHIR References to other resources.") + sliceName_field: stringModel = Field(default=None, alias="sliceName", description="Which slice (if profiled).") + targetId_field: idModel = Field(default=None, alias="targetId", description="The target node for this link.") + params_field: stringModel = Field(default=None, alias="params", description="A set of parameters to look up.") + compartment_field: List[GraphDefinition_CompartmentModel] = Field(default_factory=list, alias="compartment", description="Compartment Consistency Rules.") + +class GraphDefinition_CompartmentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + use_field: codeModel = Field(default=None, alias="use", description="Defines how the compartment rule is used - whether it it is used to test whether resources are subject to the rule, or whether it is a rule that must be followed.") + rule_field: codeModel = Field(default=None, alias="rule", description="identical | matching | different | no-rule | custom.") + code_field: codeModel = Field(default=None, alias="code", description="Identifies the compartment.") + expression_field: stringModel = Field(default=None, alias="expression", description="Custom rule, as a FHIRPath expression.") + description_field: stringModel = Field(default=None, alias="description", description="Documentation for FHIRPath expression.") + +class GroupModel(BaseModel): + resourceType_field: str = "Group" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this participant by one of the applications involved. These identifiers remain constant as the resource is updated and propagates from server to server.") + active_field: booleanModel = Field(default=None, alias="active", description="Indicates whether the record for the group is available for use or is merely being retained for historical purposes.") + type_field: codeModel = Field(default=None, alias="type", description="Identifies the broad classification of the kind of resources the group includes.") + membership_field: codeModel = Field(default=None, alias="membership", description="Basis for membership in the Group:") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Provides a specific type of resource the group includes; e.g. cow, syringe, etc.") + name_field: stringModel = Field(default=None, alias="name", description="A label assigned to the group for human identification and communication.") + description_field: markdownModel = Field(default=None, alias="description", description="Explanation of what the group represents and how it is intended to be used.") + quantity_field: unsignedIntModel = Field(default=None, alias="quantity", description="A count of the number of resource instances that are part of the group.") + managingEntity_field: ReferenceModel = Field(default=None, alias="managingEntity", description="Entity responsible for defining and maintaining Group characteristics and/or registered members.") + characteristic_field: List[Group_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Identifies traits whose presence r absence is shared by members of the group.") + member_field: List[Group_MemberModel] = Field(default_factory=list, alias="member", description="Identifies the resource instances that are members of the group.") + +class Group_CharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies the kind of trait being asserted.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") + exclude_field: booleanModel = Field(default=None, alias="exclude", description="If true, indicates the characteristic is one that is NOT held by members of the group.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.") + +class Group_MemberModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + entity_field: ReferenceModel = Field(default=None, alias="entity", description="A reference to the entity that is a member of the group. Must be consistent with Group.type. If the entity is another group, then the type must be the same.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period that the member was in the group, if known.") + inactive_field: booleanModel = Field(default=None, alias="inactive", description="A flag to indicate that the member is no longer in the group, but previously may have been a member.") + +class GuidanceResponseModel(BaseModel): + resourceType_field: str = "GuidanceResponse" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + requestIdentifier_field: IdentifierModel = Field(default=None, alias="requestIdentifier", description="The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Allows a service to provide unique, business identifiers for the response.") + moduleCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="moduleCodeableConcept", description="An identifier, CodeableConcept or canonical reference to the guidance that was requested.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient for which the request was processed.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter during which this response was created or to which the creation of this record is tightly associated.") + occurrenceDateTime_field: dateTimeModel = Field(default=None, alias="occurrenceDateTime", description="Indicates when the guidance response was processed.") + performer_field: ReferenceModel = Field(default=None, alias="performer", description="Provides a reference to the device that performed the guidance.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides a mechanism to communicate additional information about the response.") + evaluationMessage_field: ReferenceModel = Field(default=None, alias="evaluationMessage", description="Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.") + outputParameters_field: ReferenceModel = Field(default=None, alias="outputParameters", description="The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.") + result_field: List[ReferenceModel] = Field(default_factory=list, alias="result", description="The actions, if any, produced by the evaluation of the artifact.") + dataRequirement_field: List[DataRequirementModel] = Field(default_factory=list, alias="dataRequirement", description="If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data.") + +class HealthcareServiceModel(BaseModel): + resourceType_field: str = "HealthcareService" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="External identifiers for this item.") + active_field: booleanModel = Field(default=None, alias="active", description="This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.") + providedBy_field: ReferenceModel = Field(default=None, alias="providedBy", description="The organization that provides this healthcare service.") + offeredIn_field: List[ReferenceModel] = Field(default_factory=list, alias="offeredIn", description="When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Identifies the broad category of service being performed or delivered.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The specific type of service that may be delivered or performed.") + specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="Collection of specialties handled by the Healthcare service. This is more of a medical term.") + location_field: List[ReferenceModel] = Field(default_factory=list, alias="location", description="The location(s) where this healthcare service may be provided.") + name_field: stringModel = Field(default=None, alias="name", description="Further description of the service as it would be presented to a consumer while searching.") + comment_field: markdownModel = Field(default=None, alias="comment", description="Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.") + extraDetails_field: markdownModel = Field(default=None, alias="extraDetails", description="Extra details about the service that can't be placed in the other fields.") + photo_field: AttachmentModel = Field(default=None, alias="photo", description="If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.") + contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") + coverageArea_field: List[ReferenceModel] = Field(default_factory=list, alias="coverageArea", description="The location(s) that this service is available to (not where the service is provided).") + serviceProvisionCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceProvisionCode", description="The code(s) that detail the conditions under which the healthcare service is available/offered.") + eligibility_field: List[HealthcareService_EligibilityModel] = Field(default_factory=list, alias="eligibility", description="Does this service have specific eligibility requirements that need to be met in order to use the service?") + program_field: List[CodeableConceptModel] = Field(default_factory=list, alias="program", description="Programs that this service is applicable to.") + characteristic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="characteristic", description="Collection of characteristics (attributes).") + communication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="communication", description="Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used.") + referralMethod_field: List[CodeableConceptModel] = Field(default_factory=list, alias="referralMethod", description="Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.") + appointmentRequired_field: booleanModel = Field(default=None, alias="appointmentRequired", description="Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.") + availability_field: List[AvailabilityModel] = Field(default_factory=list, alias="availability", description="A collection of times that the healthcare service is available.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.") + +class HealthcareService_EligibilityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded value for the eligibility.") + comment_field: markdownModel = Field(default=None, alias="comment", description="Describes the eligibility conditions for the service.") + +class ImagingSelectionModel(BaseModel): + resourceType_field: str = "ImagingSelection" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this imaging selection.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the ImagingSelection resource. This is not the status of any ImagingStudy, ServiceRequest, or Task resources associated with the ImagingSelection.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient, or group of patients, location, device, organization, procedure or practitioner this imaging selection is about and into whose or what record the imaging selection is placed.") + issued_field: instantModel = Field(default=None, alias="issued", description="The date and time this imaging selection was created.") + performer_field: List[ImagingSelection_PerformerModel] = Field(default_factory=list, alias="performer", description="Selector of the instances – human or machine.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A list of the diagnostic requests that resulted in this imaging selection being performed.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Classifies the imaging selection.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Reason for referencing the selected content.") + studyUid_field: idModel = Field(default=None, alias="studyUid", description="The Study Instance UID for the DICOM Study from which the images were selected.") + derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="The imaging study from which the imaging selection is made.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The network service providing retrieval access to the selected images, frames, etc. See implementation notes for information about using DICOM endpoints.") + seriesUid_field: idModel = Field(default=None, alias="seriesUid", description="The Series Instance UID for the DICOM Series from which the images were selected.") + seriesNumber_field: unsignedIntModel = Field(default=None, alias="seriesNumber", description="The Series Number for the DICOM Series from which the images were selected.") + frameOfReferenceUid_field: idModel = Field(default=None, alias="frameOfReferenceUid", description="The Frame of Reference UID identifying the coordinate system that conveys spatial and/or temporal information for the selected images or frames.") + bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings.") + focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.") + instance_field: List[ImagingSelection_InstanceModel] = Field(default_factory=list, alias="instance", description="Each imaging selection includes one or more selected DICOM SOP instances.") + +class ImagingSelection_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Author – human or machine.") + +class ImagingSelection_InstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + uid_field: idModel = Field(default=None, alias="uid", description="The SOP Instance UID for the selected DICOM instance.") + number_field: unsignedIntModel = Field(default=None, alias="number", description="The Instance Number for the selected DICOM instance.") + sopClass_field: CodingModel = Field(default=None, alias="sopClass", description="The SOP Class UID for the selected DICOM instance.") + subset_field: List[stringModel] = Field(default_factory=list, alias="subset", description="Selected subset of the SOP Instance. The content and format of the subset item is determined by the SOP Class of the selected instance.") + imageRegion2D_field: List[ImagingSelection_ImageRegion2DModel] = Field(default_factory=list, alias="imageRegion2D", description="Each imaging selection instance or frame list might includes an image region, specified by a region type and a set of 2D coordinates.") + imageRegion3D_field: List[ImagingSelection_ImageRegion3DModel] = Field(default_factory=list, alias="imageRegion3D", description="Each imaging selection might includes a 3D image region, specified by a region type and a set of 3D coordinates.") + +class ImagingSelection_ImageRegion2DModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + regionType_field: codeModel = Field(default=None, alias="regionType", description="Specifies the type of image region.") + coordinate_field: List[decimalModel] = Field(default_factory=list, alias="coordinate", description="The coordinates describing the image region. Encoded as a set of (column, row) pairs that denote positions in the selected image / frames specified with sub-pixel resolution.") + +class ImagingSelection_ImageRegion3DModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + regionType_field: codeModel = Field(default=None, alias="regionType", description="Specifies the type of image region.") + coordinate_field: List[decimalModel] = Field(default_factory=list, alias="coordinate", description="The coordinates describing the image region. Encoded as an ordered set of (x,y,z) triplets (in mm and may be negative) that define a region of interest in the patient-relative Reference Coordinate System defined by ImagingSelection.frameOfReferenceUid element.") + +class ImagingStudyModel(BaseModel): + resourceType_field: str = "ImagingStudy" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers for the ImagingStudy such as DICOM Study Instance UID.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the ImagingStudy resource. This is not the status of any ServiceRequest or Task resources associated with the ImagingStudy.") + modality_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modality", description="A list of all the distinct values of series.modality. This may include both acquisition and non-acquisition modalities.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject, typically a patient, of the imaging study.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this ImagingStudy is made.") + started_field: dateTimeModel = Field(default=None, alias="started", description="Date and time the study started.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A list of the diagnostic requests that resulted in this imaging study being performed.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular ImagingStudy is a component or step. For example, an ImagingStudy as part of a procedure.") + referrer_field: ReferenceModel = Field(default=None, alias="referrer", description="The requesting/referring physician.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.connectionType.") + numberOfSeries_field: unsignedIntModel = Field(default=None, alias="numberOfSeries", description="Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present.") + numberOfInstances_field: unsignedIntModel = Field(default=None, alias="numberOfInstances", description="Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.") + procedure_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="procedure", description="This field corresponds to the DICOM Procedure Code Sequence (0008,1032). This is different from the FHIR Procedure resource that may include the ImagingStudy.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The principal physical location where the ImagingStudy was performed.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Description of clinical condition indicating why the ImagingStudy was requested, and/or Indicates another resource whose existence justifies this Study.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Per the recommended DICOM mapping, this element is derived from the Study Description attribute (0008,1030). Observations or findings about the imaging study should be recorded in another resource, e.g. Observation, and not in this element.") + description_field: stringModel = Field(default=None, alias="description", description="The Imaging Manager description of the study. Institution-generated description or classification of the Study (component) performed.") + series_field: List[ImagingStudy_SeriesModel] = Field(default_factory=list, alias="series", description="Each study has one or more series of images or other content.") + +class ImagingStudy_SeriesModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + uid_field: idModel = Field(default=None, alias="uid", description="The DICOM Series Instance UID for the series.") + number_field: unsignedIntModel = Field(default=None, alias="number", description="The numeric identifier of this series in the study.") + modality_field: CodeableConceptModel = Field(default=None, alias="modality", description="The distinct modality for this series. This may include both acquisition and non-acquisition modalities.") + description_field: stringModel = Field(default=None, alias="description", description="A description of the series.") + numberOfInstances_field: unsignedIntModel = Field(default=None, alias="numberOfInstances", description="Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.connectionType.") + bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality.") + laterality_field: CodeableConceptModel = Field(default=None, alias="laterality", description="The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite.") + specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="The specimen imaged, e.g., for whole slide imaging of a biopsy.") + started_field: dateTimeModel = Field(default=None, alias="started", description="The date and time the series was started.") + performer_field: List[ImagingStudy_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the series and how they were involved.") + instance_field: List[ImagingStudy_InstanceModel] = Field(default_factory=list, alias="instance", description="A single SOP instance within the series, e.g. an image, or presentation state.") + +class ImagingStudy_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer in the series.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what performed the series.") + +class ImagingStudy_InstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + uid_field: idModel = Field(default=None, alias="uid", description="The DICOM SOP Instance UID for this image or other DICOM content.") + sopClass_field: CodingModel = Field(default=None, alias="sopClass", description="DICOM instance type.") + number_field: unsignedIntModel = Field(default=None, alias="number", description="The number of instance in the series.") + title_field: stringModel = Field(default=None, alias="title", description="The description of the instance.") + +class ImmunizationModel(BaseModel): + resourceType_field: str = "Immunization" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this immunization record.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, order or recommendation fulfilled in whole or in part by this immunization.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates the current status of the immunization event.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Indicates the reason the immunization event was not performed.") + vaccineCode_field: CodeableConceptModel = Field(default=None, alias="vaccineCode", description="Vaccine that was administered or was to be administered.") + administeredProduct_field: CodeableReferenceModel = Field(default=None, alias="administeredProduct", description="An indication of which product was administered to the patient. This is typically a more detailed representation of the concept conveyed by the vaccineCode data element. If a Medication resource is referenced, it may be to a stand-alone resource or a contained resource within the Immunization resource.") + manufacturer_field: CodeableReferenceModel = Field(default=None, alias="manufacturer", description="Name of vaccine manufacturer.") + lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="Lot number of the vaccine product.") + expirationDate_field: dateModel = Field(default=None, alias="expirationDate", description="Date vaccine batch expires.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who either received or did not receive the immunization.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The visit or admission or other contact between patient and health care provider the immunization was performed as part of.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information that is relevant to the immunization (e.g. for a vaccine recipient who is pregnant, the gestational age of the fetus). The reason why a vaccine was given (e.g. occupation, underlying medical condition) should be conveyed in Immunization.reason, not as supporting information. The reason why a vaccine was not given (e.g. contraindication) should be conveyed in Immunization.statusReason, not as supporting information.") + primarySource_field: booleanModel = Field(default=None, alias="primarySource", description="Indicates whether the data contained in the resource was captured by the individual/organization which was responsible for the administration of the vaccine rather than as 'secondary reported' data documented by a third party. A value of 'true' means this data originated with the individual/organization which was responsible for the administration of the vaccine.") + informationSource_field: CodeableReferenceModel = Field(default=None, alias="informationSource", description="Typically the source of the data when the report of the immunization event is not based on information from the person who administered the vaccine.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The service delivery location where the vaccine administration occurred.") + site_field: CodeableConceptModel = Field(default=None, alias="site", description="Body site where vaccine was administered.") + route_field: CodeableConceptModel = Field(default=None, alias="route", description="The path by which the vaccine product is taken into the body.") + doseQuantity_field: QuantityModel = Field(default=None, alias="doseQuantity", description="The quantity of vaccine product that was administered.") + performer_field: List[Immunization_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who performed the immunization event.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the immunization that is not conveyed by the other attributes.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the immunization occurred in coded or textual form, or Indicates another resource (Condition, Observation or DiagnosticReport) whose existence justifies this immunization.") + isSubpotent_field: booleanModel = Field(default=None, alias="isSubpotent", description="Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent.") + subpotentReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subpotentReason", description="Reason why a dose is considered to be subpotent.") + programEligibility_field: List[Immunization_ProgramEligibilityModel] = Field(default_factory=list, alias="programEligibility", description="Indicates a patient's eligibility for a funding program.") + fundingSource_field: CodeableConceptModel = Field(default=None, alias="fundingSource", description="Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered).") + reaction_field: List[Immunization_ReactionModel] = Field(default_factory=list, alias="reaction", description="Categorical data indicating that an adverse event is associated in time to an immunization.") + protocolApplied_field: List[Immunization_ProtocolAppliedModel] = Field(default_factory=list, alias="protocolApplied", description="The protocol (set of recommendations) being followed by the provider who administered the dose.") + +class Immunization_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Describes the type of performance (e.g. ordering provider, administering provider, etc.).") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The practitioner or organization who performed the action.") + +class Immunization_ProgramEligibilityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + program_field: CodeableConceptModel = Field(default=None, alias="program", description="Indicates which program the patient had their eligility evaluated for.") + programStatus_field: CodeableConceptModel = Field(default=None, alias="programStatus", description="Indicates the patient's eligility status for for a specific payment program.") + +class Immunization_ReactionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Date of reaction to the immunization.") + manifestation_field: CodeableReferenceModel = Field(default=None, alias="manifestation", description="Details of the reaction.") + reported_field: booleanModel = Field(default=None, alias="reported", description="Self-reported indicator.") + +class Immunization_ProtocolAppliedModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + series_field: stringModel = Field(default=None, alias="series", description="One possible path to achieve presumed immunity against a disease - within the context of an authority.") + authority_field: ReferenceModel = Field(default=None, alias="authority", description="Indicates the authority who published the protocol (e.g. ACIP) that is being followed.") + targetDisease_field: List[CodeableConceptModel] = Field(default_factory=list, alias="targetDisease", description="The vaccine preventable disease the dose is being administered against.") + doseNumber_field: stringModel = Field(default=None, alias="doseNumber", description="Nominal position in a series as intended by the practitioner administering the dose.") + seriesDoses_field: stringModel = Field(default=None, alias="seriesDoses", description="The recommended number of doses to achieve immunity as intended by the practitioner administering the dose.") + +class ImmunizationEvaluationModel(BaseModel): + resourceType_field: str = "ImmunizationEvaluation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this immunization evaluation record.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates the current status of the evaluation of the vaccination administration event.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The individual for whom the evaluation is being done.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date the evaluation of the vaccine administration event was performed.") + authority_field: ReferenceModel = Field(default=None, alias="authority", description="Indicates the authority who published the protocol (e.g. ACIP).") + targetDisease_field: CodeableConceptModel = Field(default=None, alias="targetDisease", description="The vaccine preventable disease the dose is being evaluated against.") + immunizationEvent_field: ReferenceModel = Field(default=None, alias="immunizationEvent", description="The vaccine administration event being evaluated.") + doseStatus_field: CodeableConceptModel = Field(default=None, alias="doseStatus", description="Indicates if the dose is valid or not valid with respect to the published recommendations.") + doseStatusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="doseStatusReason", description="Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations.") + description_field: markdownModel = Field(default=None, alias="description", description="Additional information about the evaluation.") + series_field: stringModel = Field(default=None, alias="series", description="One possible path to achieve presumed immunity against a disease - within the context of an authority.") + doseNumber_field: stringModel = Field(default=None, alias="doseNumber", description="Nominal position in a series as determined by the outcome of the evaluation process.") + seriesDoses_field: stringModel = Field(default=None, alias="seriesDoses", description="The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.") + +class ImmunizationRecommendationModel(BaseModel): + resourceType_field: str = "ImmunizationRecommendation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this particular recommendation record.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient the recommendation(s) are for.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date the immunization recommendation(s) were created.") + authority_field: ReferenceModel = Field(default=None, alias="authority", description="Indicates the authority who published the protocol (e.g. ACIP).") + recommendation_field: List[ImmunizationRecommendation_RecommendationModel] = Field(default_factory=list, alias="recommendation", description="Vaccine administration recommendations.") + +class ImmunizationRecommendation_RecommendationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + vaccineCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="vaccineCode", description="Vaccine(s) or vaccine group that pertain to the recommendation.") + targetDisease_field: List[CodeableConceptModel] = Field(default_factory=list, alias="targetDisease", description="The targeted disease for the recommendation.") + contraindicatedVaccineCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="contraindicatedVaccineCode", description="Vaccine(s) which should not be used to fulfill the recommendation.") + forecastStatus_field: CodeableConceptModel = Field(default=None, alias="forecastStatus", description="Indicates the patient status with respect to the path to immunity for the target disease.") + forecastReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="forecastReason", description="The reason for the assigned forecast status.") + dateCriterion_field: List[ImmunizationRecommendation_DateCriterionModel] = Field(default_factory=list, alias="dateCriterion", description="Vaccine date recommendations. For example, earliest date to administer, latest date to administer, etc.") + description_field: markdownModel = Field(default=None, alias="description", description="Contains the description about the protocol under which the vaccine was administered.") + series_field: stringModel = Field(default=None, alias="series", description="One possible path to achieve presumed immunity against a disease - within the context of an authority.") + doseNumber_field: stringModel = Field(default=None, alias="doseNumber", description="Nominal position of the recommended dose in a series as determined by the evaluation and forecasting process (e.g. dose 2 is the next recommended dose).") + seriesDoses_field: stringModel = Field(default=None, alias="seriesDoses", description="The recommended number of doses to achieve immunity as determined by the evaluation and forecasting process.") + supportingImmunization_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingImmunization", description="Immunization event history and/or evaluation that supports the status and recommendation.") + supportingPatientInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingPatientInformation", description="Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.") + +class ImmunizationRecommendation_DateCriterionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Date classification of recommendation. For example, earliest date to give, latest date to give, etc.") + value_field: dateTimeModel = Field(default=None, alias="value", description="The date whose meaning is specified by dateCriterion.code.") + +class ImplementationGuideModel(BaseModel): + resourceType_field: str = "ImplementationGuide" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the implementation guide.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this implementation guide. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the implementation guide was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the implementation guide.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the implementation guide from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the implementation guide is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this implementation guide is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + packageId_field: idModel = Field(default=None, alias="packageId", description="The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.") + license_field: codeModel = Field(default=None, alias="license", description="The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.") + fhirVersion_field: List[codeModel] = Field(default_factory=list, alias="fhirVersion", description="The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.6.0. for this version.") + dependsOn_field: List[ImplementationGuide_DependsOnModel] = Field(default_factory=list, alias="dependsOn", description="Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.") + global_field: List[ImplementationGuide_GlobalModel] = Field(default_factory=list, alias="global", description="A set of profiles that all resources covered by this implementation guide must conform to.") + definition_field: ImplementationGuide_DefinitionModel = Field(default=None, alias="definition", description="The information needed by an IG publisher tool to publish the whole implementation guide.") + manifest_field: ImplementationGuide_ManifestModel = Field(default=None, alias="manifest", description="Information about an assembled implementation guide, created by the publication tooling.") + +class ImplementationGuide_DependsOnModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + uri_field: canonicalModel = Field(default=None, alias="uri", description="A canonical reference to the Implementation guide for the dependency.") + packageId_field: idModel = Field(default=None, alias="packageId", description="The NPM package name for the Implementation Guide that this IG depends on.") + version_field: stringModel = Field(default=None, alias="version", description="The version of the IG that is depended on, when the correct version is required to understand the IG correctly.") + reason_field: markdownModel = Field(default=None, alias="reason", description="A description explaining the nature of the dependency on the listed IG.") + +class ImplementationGuide_GlobalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of resource that all instances must conform to.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="A reference to the profile that all instances must conform to.") + +class ImplementationGuide_DefinitionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + grouping_field: List[ImplementationGuide_GroupingModel] = Field(default_factory=list, alias="grouping", description="A logical group of resources. Logical groups can be used when building pages.") + resource_field: List[ImplementationGuide_ResourceModel] = Field(default_factory=list, alias="resource", description="A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.") + page_field: ImplementationGuide_PageModel = Field(default=None, alias="page", description="A page / section in the implementation guide. The root page is the implementation guide home page.") + parameter_field: List[ImplementationGuide_ParameterModel] = Field(default_factory=list, alias="parameter", description="A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides.") + template_field: List[ImplementationGuide_TemplateModel] = Field(default_factory=list, alias="template", description="A template for building resources.") + +class ImplementationGuide_GroupingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The human-readable title to display for the package of resources when rendering the implementation guide.") + description_field: markdownModel = Field(default=None, alias="description", description="Human readable text describing the package.") + +class ImplementationGuide_ResourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="Where this resource is found.") + fhirVersion_field: List[codeModel] = Field(default_factory=list, alias="fhirVersion", description="Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.") + name_field: stringModel = Field(default=None, alias="name", description="A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).") + description_field: markdownModel = Field(default=None, alias="description", description="A description of the reason that a resource has been included in the implementation guide.") + isExample_field: booleanModel = Field(default=None, alias="isExample", description="If true, indicates the resource is an example instance.") + profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="If present, indicates profile(s) the instance is valid against.") + groupingId_field: idModel = Field(default=None, alias="groupingId", description="Reference to the id of the grouping this resource appears in.") + +class ImplementationGuide_PageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: urlModel = Field(default=None, alias="name", description="The url by which the page should be known when published.") + title_field: stringModel = Field(default=None, alias="title", description="A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.") + generation_field: codeModel = Field(default=None, alias="generation", description="A code that indicates how the page is generated.") + page_field: List[ImplementationGuide_PageModel] = Field(default_factory=list, alias="page", description="Nested Pages/Sections under this page.") + +class ImplementationGuide_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodingModel = Field(default=None, alias="code", description="A tool-specific code that defines the parameter.") + value_field: stringModel = Field(default=None, alias="value", description="Value for named type.") + +class ImplementationGuide_TemplateModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Type of template specified.") + source_field: stringModel = Field(default=None, alias="source", description="The source location for the template.") + scope_field: stringModel = Field(default=None, alias="scope", description="The scope in which the template applies.") + +class ImplementationGuide_ManifestModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + rendering_field: urlModel = Field(default=None, alias="rendering", description="A pointer to official web page, PDF or other rendering of the implementation guide.") + resource_field: List[ImplementationGuide_Resource1Model] = Field(default_factory=list, alias="resource", description="A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.") + page_field: List[ImplementationGuide_Page1Model] = Field(default_factory=list, alias="page", description="Information about a page within the IG.") + image_field: List[stringModel] = Field(default_factory=list, alias="image", description="Indicates a relative path to an image that exists within the IG.") + other_field: List[stringModel] = Field(default_factory=list, alias="other", description="Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.") + +class ImplementationGuide_Resource1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="Where this resource is found.") + isExample_field: booleanModel = Field(default=None, alias="isExample", description="If true, indicates the resource is an example instance.") + profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="If present, indicates profile(s) the instance is valid against.") + relativePath_field: urlModel = Field(default=None, alias="relativePath", description="The relative path for primary page for this resource within the IG.") + +class ImplementationGuide_Page1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Relative path to the page.") + title_field: stringModel = Field(default=None, alias="title", description="Label for the page intended for human display.") + anchor_field: List[stringModel] = Field(default_factory=list, alias="anchor", description="The name of an anchor available on the page.") + +class IngredientModel(BaseModel): + resourceType_field: str = "Ingredient" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The identifier(s) of this Ingredient that are assigned by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this ingredient. Enables tracking the life-cycle of the content.") + for_field: List[ReferenceModel] = Field(default_factory=list, alias="for", description="The product which this ingredient is a constituent part of.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="A classification of the ingredient identifying its purpose within the product, e.g. active, inactive.") + function_field: List[CodeableConceptModel] = Field(default_factory=list, alias="function", description="A classification of the ingredient identifying its precise purpose(s) in the drug product. This extends the Ingredient.role to add more detail. Example: antioxidant, alkalizing agent.") + group_field: CodeableConceptModel = Field(default=None, alias="group", description="A classification of the ingredient according to where in the physical item it tends to be used, such the outer shell of a tablet, inner body or ink.") + allergenicIndicator_field: booleanModel = Field(default=None, alias="allergenicIndicator", description="If the ingredient is a known or suspected allergen. Note that this is a property of the substance, so if a reference to a SubstanceDefinition is used to decribe that (rather than just a code), the allergen information should go there, not here.") + comment_field: markdownModel = Field(default=None, alias="comment", description="A place for providing any notes that are relevant to the component, e.g. removed during process, adjusted for loss on drying.") + manufacturer_field: List[Ingredient_ManufacturerModel] = Field(default_factory=list, alias="manufacturer", description="The organization(s) that manufacture this ingredient. Can be used to indicate: 1) Organizations we are aware of that manufacture this ingredient 2) Specific Manufacturer(s) currently being used 3) Set of organisations allowed to manufacture this ingredient for this product Users must be clear on the application of context relevant to their use case.") + substance_field: Ingredient_SubstanceModel = Field(default=None, alias="substance", description="The substance that comprises this ingredient.") + +class Ingredient_ManufacturerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: codeModel = Field(default=None, alias="role", description="The way in which this manufacturer is associated with the ingredient. For example whether it is a possible one (others allowed), or an exclusive authorized one for this ingredient. Note that this is not the manufacturing process role.") + manufacturer_field: ReferenceModel = Field(default=None, alias="manufacturer", description="An organization that manufactures this ingredient.") + +class Ingredient_SubstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableReferenceModel = Field(default=None, alias="code", description="A code or full resource that represents the ingredient's substance.") + strength_field: List[Ingredient_StrengthModel] = Field(default_factory=list, alias="strength", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. The allowed repetitions do not represent different strengths, but are different representations - mathematically equivalent - of a single strength.") + +class Ingredient_StrengthModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + presentationRatio_field: RatioModel = Field(default=None, alias="presentationRatio", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") + presentationRatioRange_field: RatioRangeModel = Field(default=None, alias="presentationRatioRange", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") + presentationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="presentationCodeableConcept", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") + presentationQuantity_field: QuantityModel = Field(default=None, alias="presentationQuantity", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") + textPresentation_field: stringModel = Field(default=None, alias="textPresentation", description="A textual represention of either the whole of the presentation strength or a part of it - with the rest being in Strength.presentation as a ratio.") + concentrationRatio_field: RatioModel = Field(default=None, alias="concentrationRatio", description="The strength per unitary volume (or mass).") + concentrationRatioRange_field: RatioRangeModel = Field(default=None, alias="concentrationRatioRange", description="The strength per unitary volume (or mass).") + concentrationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="concentrationCodeableConcept", description="The strength per unitary volume (or mass).") + concentrationQuantity_field: QuantityModel = Field(default=None, alias="concentrationQuantity", description="The strength per unitary volume (or mass).") + textConcentration_field: stringModel = Field(default=None, alias="textConcentration", description="A textual represention of either the whole of the concentration strength or a part of it - with the rest being in Strength.concentration as a ratio.") + basis_field: CodeableConceptModel = Field(default=None, alias="basis", description="A code that indicates if the strength is, for example, based on the ingredient substance as stated or on the substance base (when the ingredient is a salt).") + measurementPoint_field: stringModel = Field(default=None, alias="measurementPoint", description="For when strength is measured at a particular point or distance. There are products where strength is measured at a particular point. For example, the strength of the ingredient in some inhalers is measured at a particular position relative to the point of aerosolization.") + country_field: List[CodeableConceptModel] = Field(default_factory=list, alias="country", description="The country or countries for which the strength range applies.") + referenceStrength_field: List[Ingredient_ReferenceStrengthModel] = Field(default_factory=list, alias="referenceStrength", description="Strength expressed in terms of a reference substance. For when the ingredient strength is additionally expressed as equivalent to the strength of some other closely related substance (e.g. salt vs. base). Reference strength represents the strength (quantitative composition) of the active moiety of the active substance. There are situations when the active substance and active moiety are different, therefore both a strength and a reference strength are needed.") + +class Ingredient_ReferenceStrengthModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + substance_field: CodeableReferenceModel = Field(default=None, alias="substance", description="Relevant reference substance.") + strengthRatio_field: RatioModel = Field(default=None, alias="strengthRatio", description="Strength expressed in terms of a reference substance.") + strengthRatioRange_field: RatioRangeModel = Field(default=None, alias="strengthRatioRange", description="Strength expressed in terms of a reference substance.") + strengthQuantity_field: QuantityModel = Field(default=None, alias="strengthQuantity", description="Strength expressed in terms of a reference substance.") + measurementPoint_field: stringModel = Field(default=None, alias="measurementPoint", description="For when strength is measured at a particular point or distance.") + country_field: List[CodeableConceptModel] = Field(default_factory=list, alias="country", description="The country or countries for which the strength range applies.") + +class InsurancePlanModel(BaseModel): + resourceType_field: str = "InsurancePlan" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this health insurance product which remain constant as the resource is updated and propagates from server to server.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the health insurance product.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind of health insurance product.") + name_field: stringModel = Field(default=None, alias="name", description="Official name of the health insurance product as designated by the owner.") + alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="A list of alternate names that the product is known as, or was known as in the past.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time that the health insurance product is available.") + ownedBy_field: ReferenceModel = Field(default=None, alias="ownedBy", description="The entity that is providing the health insurance product and underwriting the risk. This is typically an insurance carriers, other third-party payers, or health plan sponsors comonly referred to as 'payers'.") + administeredBy_field: ReferenceModel = Field(default=None, alias="administeredBy", description="An organization which administer other services such as underwriting, customer service and/or claims processing on behalf of the health insurance product owner.") + coverageArea_field: List[ReferenceModel] = Field(default_factory=list, alias="coverageArea", description="The geographic region in which a health insurance product's benefits apply.") + contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific Insurance Plan/Product. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The technical endpoints providing access to services operated for the health insurance product.") + network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="Reference to the network included in the health insurance product.") + coverage_field: List[InsurancePlan_CoverageModel] = Field(default_factory=list, alias="coverage", description="Details about the coverage offered by the insurance product.") + plan_field: List[InsurancePlan_PlanModel] = Field(default_factory=list, alias="plan", description="Details about an insurance plan.") + +class InsurancePlan_CoverageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of coverage (Medical; Dental; Mental Health; Substance Abuse; Vision; Drug; Short Term; Long Term Care; Hospice; Home Health).") + network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="Reference to the network that providing the type of coverage.") + benefit_field: List[InsurancePlan_BenefitModel] = Field(default_factory=list, alias="benefit", description="Specific benefits under this type of coverage.") + +class InsurancePlan_BenefitModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of benefit (primary care; speciality care; inpatient; outpatient).") + requirement_field: stringModel = Field(default=None, alias="requirement", description="The referral requirements to have access/coverage for this benefit.") + limit_field: List[InsurancePlan_LimitModel] = Field(default_factory=list, alias="limit", description="The specific limits on the benefit.") + +class InsurancePlan_LimitModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + value_field: QuantityModel = Field(default=None, alias="value", description="The maximum amount of a service item a plan will pay for a covered benefit. For examples. wellness visits, or eyeglasses.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The specific limit on the benefit.") + +class InsurancePlan_PlanModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this health insurance plan which remain constant as the resource is updated and propagates from server to server.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of plan. For example, Platinum or High Deductable.") + coverageArea_field: List[ReferenceModel] = Field(default_factory=list, alias="coverageArea", description="The geographic region in which a health insurance plan's benefits apply.") + network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="Reference to the network that providing the type of coverage.") + generalCost_field: List[InsurancePlan_GeneralCostModel] = Field(default_factory=list, alias="generalCost", description="Overall costs associated with the plan.") + specificCost_field: List[InsurancePlan_SpecificCostModel] = Field(default_factory=list, alias="specificCost", description="Costs associated with the coverage provided by the product.") + +class InsurancePlan_GeneralCostModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of cost.") + groupSize_field: positiveIntModel = Field(default=None, alias="groupSize", description="Number of participants enrolled in the plan.") + cost_field: MoneyModel = Field(default=None, alias="cost", description="Value of the cost.") + comment_field: stringModel = Field(default=None, alias="comment", description="Additional information about the general costs associated with this plan.") + +class InsurancePlan_SpecificCostModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="General category of benefit (Medical; Dental; Vision; Drug; Mental Health; Substance Abuse; Hospice, Home Health).") + benefit_field: List[InsurancePlan_Benefit1Model] = Field(default_factory=list, alias="benefit", description="List of the specific benefits under this category of benefit.") + +class InsurancePlan_Benefit1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of specific benefit (preventative; primary care office visit; speciality office visit; hospitalization; emergency room; urgent care).") + cost_field: List[InsurancePlan_CostModel] = Field(default_factory=list, alias="cost", description="List of the costs associated with a specific benefit.") + +class InsurancePlan_CostModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of cost (copay; individual cap; family cap; coinsurance; deductible).") + applicability_field: CodeableConceptModel = Field(default=None, alias="applicability", description="Whether the cost applies to in-network or out-of-network providers (in-network; out-of-network; other).") + qualifiers_field: List[CodeableConceptModel] = Field(default_factory=list, alias="qualifiers", description="Additional information about the cost, such as information about funding sources (e.g. HSA, HRA, FSA, RRA).") + value_field: QuantityModel = Field(default=None, alias="value", description="The actual cost value. (some of the costs may be represented as percentages rather than currency, e.g. 10% coinsurance).") + +class InventoryItemModel(BaseModel): + resourceType_field: str = "InventoryItem" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for the inventory item.") + status_field: codeModel = Field(default=None, alias="status", description="Status of the item entry.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Category or class of the item.") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Code designating the specific type of item.") + name_field: List[InventoryItem_NameModel] = Field(default_factory=list, alias="name", description="The item name(s) - the brand name, or common name, functional name, generic name.") + responsibleOrganization_field: List[InventoryItem_ResponsibleOrganizationModel] = Field(default_factory=list, alias="responsibleOrganization", description="Organization(s) responsible for the product.") + description_field: InventoryItem_DescriptionModel = Field(default=None, alias="description", description="The descriptive characteristics of the inventory item.") + inventoryStatus_field: List[CodeableConceptModel] = Field(default_factory=list, alias="inventoryStatus", description="The usage status e.g. recalled, in use, discarded... This can be used to indicate that the items have been taken out of inventory, or are in use, etc.") + baseUnit_field: CodeableConceptModel = Field(default=None, alias="baseUnit", description="The base unit of measure - the unit in which the product is used or counted.") + netContent_field: QuantityModel = Field(default=None, alias="netContent", description="Net content or amount present in the item.") + association_field: List[InventoryItem_AssociationModel] = Field(default_factory=list, alias="association", description="Association with other items or products.") + characteristic_field: List[InventoryItem_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="The descriptive or identifying characteristics of the item.") + instance_field: InventoryItem_InstanceModel = Field(default=None, alias="instance", description="Instances or occurrences of the product.") + productReference_field: ReferenceModel = Field(default=None, alias="productReference", description="Link to a product resource used in clinical workflows.") + +class InventoryItem_NameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + nameType_field: CodingModel = Field(default=None, alias="nameType", description="The type of name e.g. 'brand-name', 'functional-name', 'common-name'.") + language_field: codeModel = Field(default=None, alias="language", description="The language that the item name is expressed in.") + name_field: stringModel = Field(default=None, alias="name", description="The name or designation that the item is given.") + +class InventoryItem_ResponsibleOrganizationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role of the organization e.g. manufacturer, distributor, etc.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="An organization that has an association with the item, e.g. manufacturer, distributor, responsible, etc.") + +class InventoryItem_DescriptionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: codeModel = Field(default=None, alias="language", description="The language for the item description, when an item must be described in different languages and those languages may be authoritative and not translations of a 'main' language.") + description_field: stringModel = Field(default=None, alias="description", description="Textual description of the item.") + +class InventoryItem_AssociationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + associationType_field: CodeableConceptModel = Field(default=None, alias="associationType", description="This attribute defined the type of association when establishing associations or relations between items, e.g. 'packaged within' or 'used with' or 'to be mixed with.") + relatedItem_field: ReferenceModel = Field(default=None, alias="relatedItem", description="The related item or product.") + quantity_field: RatioModel = Field(default=None, alias="quantity", description="The quantity of the related product in this product - Numerator is the quantity of the related product. Denominator is the quantity of the present product. For example a value of 20 means that this product contains 20 units of the related product; a value of 1:20 means the inverse - that the contained product contains 20 units of the present product.") + +class InventoryItem_CharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + characteristicType_field: CodeableConceptModel = Field(default=None, alias="characteristicType", description="The type of characteristic that is being defined.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the attribute.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the attribute.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the attribute.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the attribute.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the attribute.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the attribute.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the attribute.") + +class InventoryItem_InstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The identifier for the physical instance, typically a serial number.") + lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="The lot or batch number of the item.") + expiry_field: dateTimeModel = Field(default=None, alias="expiry", description="The expiry date or date and time for the product.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject that the item is associated with.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location that the item is associated with.") + +class InventoryReportModel(BaseModel): + resourceType_field: str = "InventoryReport" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for the InventoryReport.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the inventory check or notification - whether this is draft (e.g. the report is still pending some updates) or active.") + countType_field: codeModel = Field(default=None, alias="countType", description="Whether the report is about the current inventory count (snapshot) or a differential change in inventory (change).") + operationType_field: CodeableConceptModel = Field(default=None, alias="operationType", description="What type of operation is being performed - addition or subtraction.") + operationTypeReason_field: CodeableConceptModel = Field(default=None, alias="operationTypeReason", description="The reason for this count - regular count, ad-hoc count, new arrivals, etc.") + reportedDateTime_field: dateTimeModel = Field(default=None, alias="reportedDateTime", description="When the report has been submitted.") + reporter_field: ReferenceModel = Field(default=None, alias="reporter", description="Who submits the report.") + reportingPeriod_field: PeriodModel = Field(default=None, alias="reportingPeriod", description="The period the report refers to.") + inventoryListing_field: List[InventoryReport_InventoryListingModel] = Field(default_factory=list, alias="inventoryListing", description="An inventory listing section (grouped by any of the attributes).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A note associated with the InventoryReport.") + +class InventoryReport_InventoryListingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + location_field: ReferenceModel = Field(default=None, alias="location", description="Location of the inventory items.") + itemStatus_field: CodeableConceptModel = Field(default=None, alias="itemStatus", description="The status of the items.") + countingDateTime_field: dateTimeModel = Field(default=None, alias="countingDateTime", description="The date and time when the items were counted.") + item_field: List[InventoryReport_ItemModel] = Field(default_factory=list, alias="item", description="The item or items in this listing.") + +class InventoryReport_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="The inventory category or classification of the items being reported. This is meant not for defining the product, but for inventory categories e.g. 'pending recount' or 'damaged'.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The quantity of the item or items being reported.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The code or reference to the item type.") + +class InvoiceModel(BaseModel): + resourceType_field: str = "Invoice" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier of this Invoice, often used for reference in correspondence about this invoice or for tracking of payments.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the Invoice.") + cancelledReason_field: stringModel = Field(default=None, alias="cancelledReason", description="In case of Invoice cancellation a reason must be given (entered in error, superseded by corrected invoice etc.).") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Invoice depending on domain, realm an usage (e.g. internal/external, dental, preliminary).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual or set of individuals receiving the goods and services billed in this invoice.") + recipient_field: ReferenceModel = Field(default=None, alias="recipient", description="The individual or Organization responsible for balancing of this invoice.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Depricared by the element below.") + creation_field: dateTimeModel = Field(default=None, alias="creation", description="Date/time(s) of when this Invoice was posted.") + periodPeriod_field: PeriodModel = Field(default=None, alias="periodPeriod", description="Date/time(s) range of services included in this invoice.") + participant_field: List[Invoice_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what performed or participated in the charged service.") + issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="The organizationissuing the Invoice.") + account_field: ReferenceModel = Field(default=None, alias="account", description="Account which is supposed to be balanced with this Invoice.") + lineItem_field: List[Invoice_LineItemModel] = Field(default_factory=list, alias="lineItem", description="Each line item represents one charge for goods and services rendered. Details such.ofType(date), code and amount are found in the referenced ChargeItem resource.") + totalPriceComponent_field: List[MonetaryComponentModel] = Field(default_factory=list, alias="totalPriceComponent", description="The total amount for the Invoice may be calculated as the sum of the line items with surcharges/deductions that apply in certain conditions. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the total price was calculated.") + totalNet_field: MoneyModel = Field(default=None, alias="totalNet", description="Invoice total , taxes excluded.") + totalGross_field: MoneyModel = Field(default=None, alias="totalGross", description="Invoice total, tax included.") + paymentTerms_field: markdownModel = Field(default=None, alias="paymentTerms", description="Payment details such as banking details, period of payment, deductibles, methods of payment.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the invoice by the issuer, subject, or other participants.") + +class Invoice_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Describes the type of involvement (e.g. transcriptionist, creator etc.). If the invoice has been created automatically, the Participant may be a billing engine or another kind of device.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed or participated in the service.") + +class Invoice_LineItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="Sequence in which the items appear on the invoice.") + servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="Date/time(s) range when this service was delivered or completed.") + chargeItemReference_field: ReferenceModel = Field(default=None, alias="chargeItemReference", description="The ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference.") + chargeItemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="chargeItemCodeableConcept", description="The ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference.") + priceComponent_field: List[MonetaryComponentModel] = Field(default_factory=list, alias="priceComponent", description="The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice as to how the prices have been calculated.") + +class LibraryModel(BaseModel): + resourceType_field: str = "Library" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this library when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the library.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this library. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the library was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the library changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the library.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the library from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate library instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the library is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this library is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the library content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the library giving additional information about its content.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code or group definition that describes the intended subject of the contents of the library.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code or group definition that describes the intended subject of the contents of the library.") + usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the library is used from a clinical perspective.") + parameter_field: List[ParameterDefinitionModel] = Field(default_factory=list, alias="parameter", description="The parameter element defines parameters used by the library.") + dataRequirement_field: List[DataRequirementModel] = Field(default_factory=list, alias="dataRequirement", description="Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library.") + content_field: List[AttachmentModel] = Field(default_factory=list, alias="content", description="The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content.") + +class LinkageModel(BaseModel): + resourceType_field: str = "Linkage" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + active_field: booleanModel = Field(default=None, alias="active", description="Indicates whether the asserted set of linkages are considered to be in effect.") + author_field: ReferenceModel = Field(default=None, alias="author", description="Identifies the user or organization responsible for asserting the linkages as well as the user or organization who establishes the context in which the nature of each linkage is evaluated.") + item_field: List[Linkage_ItemModel] = Field(default_factory=list, alias="item", description="Identifies which record considered as the reference to the same real-world occurrence as well as how the items should be evaluated within the collection of linked items.") + +class Linkage_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="Distinguishes which item is source of truth (if any) and which items are no longer considered to be current representations.") + resource_field: ReferenceModel = Field(default=None, alias="resource", description="The resource instance being linked as part of the group.") + +class ListModel(BaseModel): + resourceType_field: str = "List" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the List assigned for business purposes outside the context of FHIR.") + status_field: codeModel = Field(default=None, alias="status", description="Indicates the current state of this list.") + mode_field: codeModel = Field(default=None, alias="mode", description="How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.") + title_field: stringModel = Field(default=None, alias="title", description="A label for the list assigned by the author.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="This code defines the purpose of the list - why it was created.") + subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The common subject(s) (or patient(s)) of the resources that are in the list if there is one (or a set of subjects).") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that is the context in which this list was created.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Date list was last reviewed/revised and determined to be 'current'.") + source_field: ReferenceModel = Field(default=None, alias="source", description="The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.") + orderedBy_field: CodeableConceptModel = Field(default=None, alias="orderedBy", description="What order applies to the items in the list.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments that apply to the overall list.") + entry_field: List[List_EntryModel] = Field(default_factory=list, alias="entry", description="Entries in this list.") + emptyReason_field: CodeableConceptModel = Field(default=None, alias="emptyReason", description="If the list is empty, why the list is empty.") + +class List_EntryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + flag_field: CodeableConceptModel = Field(default=None, alias="flag", description="The flag allows the system constructing the list to indicate the role and significance of the item in the list.") + deleted_field: booleanModel = Field(default=None, alias="deleted", description="True if this item is marked as deleted in the list.") + date_field: dateTimeModel = Field(default=None, alias="date", description="When this item was added to the list.") + item_field: ReferenceModel = Field(default=None, alias="item", description="A reference to the actual resource from which data was derived.") + +class LocationModel(BaseModel): + resourceType_field: str = "Location" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique code or number identifying the location to its users.") + status_field: codeModel = Field(default=None, alias="status", description="The status property covers the general availability of the resource, not the current value which may be covered by the operationStatus, or by a schedule/slots if they are configured for the location.") + operationalStatus_field: CodingModel = Field(default=None, alias="operationalStatus", description="The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenance.") + name_field: stringModel = Field(default=None, alias="name", description="Name of the location as used by humans. Does not need to be unique.") + alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="A list of alternate names that the location is known as, or was known as, in the past.") + description_field: markdownModel = Field(default=None, alias="description", description="Description of the Location, which helps in finding or referencing the place.") + mode_field: codeModel = Field(default=None, alias="mode", description="Indicates whether a resource instance represents a specific location or a class of locations.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Indicates the type of function performed at the location.") + contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available at the location. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") + address_field: AddressModel = Field(default=None, alias="address", description="Physical location.") + form_field: CodeableConceptModel = Field(default=None, alias="form", description="Physical form of the location, e.g. building, room, vehicle, road, virtual.") + position_field: Location_PositionModel = Field(default=None, alias="position", description="The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).") + managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization responsible for the provisioning and upkeep of the location.") + partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="Another Location of which this Location is physically a part of.") + characteristic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="characteristic", description="Collection of characteristics (attributes).") + hoursOfOperation_field: List[AvailabilityModel] = Field(default_factory=list, alias="hoursOfOperation", description="What days/times during a week is this location usually open, and any exceptions where the location is not available.") + virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. shared conference call facility with dedicated number/details).") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for the location.") + +class Location_PositionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + longitude_field: decimalModel = Field(default=None, alias="longitude", description="Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes on Location main page).") + latitude_field: decimalModel = Field(default=None, alias="latitude", description="Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes on Location main page).") + altitude_field: decimalModel = Field(default=None, alias="altitude", description="Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes on Location main page).") + +class ManufacturedItemDefinitionModel(BaseModel): + resourceType_field: str = "ManufacturedItemDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this item. Enables tracking the life-cycle of the content.") + name_field: stringModel = Field(default=None, alias="name", description="A descriptive name applied to this item.") + manufacturedDoseForm_field: CodeableConceptModel = Field(default=None, alias="manufacturedDoseForm", description="Dose form as manufactured and before any transformation into the pharmaceutical product.") + unitOfPresentation_field: CodeableConceptModel = Field(default=None, alias="unitOfPresentation", description="The “real-world” units in which the quantity of the manufactured item is described.") + manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="Manufacturer of the item, one of several possible.") + marketingStatus_field: List[MarketingStatusModel] = Field(default_factory=list, alias="marketingStatus", description="Allows specifying that an item is on the market for sale, or that it is not available, and the dates and locations associated.") + ingredient_field: List[CodeableConceptModel] = Field(default_factory=list, alias="ingredient", description="The ingredients of this manufactured item. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource.") + property_field: List[ManufacturedItemDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General characteristics of this item.") + component_field: List[ManufacturedItemDefinition_ComponentModel] = Field(default_factory=list, alias="component", description="Physical parts of the manufactured item, that it is intrisically made from. This is distinct from the ingredients that are part of its chemical makeup.") + +class ManufacturedItemDefinition_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A value for the characteristic.") + +class ManufacturedItemDefinition_ComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Defining type of the component e.g. shell, layer, ink.") + function_field: List[CodeableConceptModel] = Field(default_factory=list, alias="function", description="The function of this component within the item e.g. delivers active ingredient, masks taste.") + amount_field: List[QuantityModel] = Field(default_factory=list, alias="amount", description="The measurable amount of total quantity of all substances in the component, expressable in different ways (e.g. by mass or volume).") + constituent_field: List[ManufacturedItemDefinition_ConstituentModel] = Field(default_factory=list, alias="constituent", description="A reference to a constituent of the manufactured item as a whole, linked here so that its component location within the item can be indicated. This not where the item's ingredient are primarily stated (for which see Ingredient.for or ManufacturedItemDefinition.ingredient).") + property_field: List[ManufacturedItemDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General characteristics of this component.") + component_field: List[ManufacturedItemDefinition_ComponentModel] = Field(default_factory=list, alias="component", description="A component that this component contains or is made from.") + +class ManufacturedItemDefinition_ConstituentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + amount_field: List[QuantityModel] = Field(default_factory=list, alias="amount", description="The measurable amount of the substance, expressable in different ways (e.g. by mass or volume).") + location_field: List[CodeableConceptModel] = Field(default_factory=list, alias="location", description="The physical location of the constituent/ingredient within the component. Example – if the component is the bead in the capsule, then the location would be where the ingredient resides within the product part – intragranular, extra-granular, etc.") + function_field: List[CodeableConceptModel] = Field(default_factory=list, alias="function", description="The function of this constituent within the component e.g. binder.") + hasIngredient_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="hasIngredient", description="The ingredient that is the constituent of the given component.") + +class MeasureModel(BaseModel): + resourceType_field: str = "Measure" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the measure.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this measure. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the measure was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the measure.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the measure from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate measure instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the measure is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this measure is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the measure content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the measure giving additional information about its content.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") + basis_field: codeModel = Field(default=None, alias="basis", description="The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.") + usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description, from a clinical perspective, of how the measure is used.") + library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing the formal logic used by the measure.") + disclaimer_field: markdownModel = Field(default=None, alias="disclaimer", description="Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.") + scoring_field: CodeableConceptModel = Field(default=None, alias="scoring", description="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.") + scoringUnit_field: CodeableConceptModel = Field(default=None, alias="scoringUnit", description="Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.") + compositeScoring_field: CodeableConceptModel = Field(default=None, alias="compositeScoring", description="If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.") + riskAdjustment_field: markdownModel = Field(default=None, alias="riskAdjustment", description="A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.") + rateAggregation_field: markdownModel = Field(default=None, alias="rateAggregation", description="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.") + rationale_field: markdownModel = Field(default=None, alias="rationale", description="Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.") + clinicalRecommendationStatement_field: markdownModel = Field(default=None, alias="clinicalRecommendationStatement", description="Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.") + improvementNotation_field: CodeableConceptModel = Field(default=None, alias="improvementNotation", description="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).") + term_field: List[Measure_TermModel] = Field(default_factory=list, alias="term", description="Provides a description of an individual term used within the measure.") + guidance_field: markdownModel = Field(default=None, alias="guidance", description="Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.") + group_field: List[Measure_GroupModel] = Field(default_factory=list, alias="group", description="A group of population criteria for the measure.") + supplementalData_field: List[Measure_SupplementalDataModel] = Field(default_factory=list, alias="supplementalData", description="The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.") + +class Measure_TermModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A codeable representation of the defined term.") + definition_field: markdownModel = Field(default=None, alias="definition", description="Provides a definition for the term as used within the measure.") + +class Measure_GroupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this population group.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") + basis_field: codeModel = Field(default=None, alias="basis", description="The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.") + scoring_field: CodeableConceptModel = Field(default=None, alias="scoring", description="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.") + scoringUnit_field: CodeableConceptModel = Field(default=None, alias="scoringUnit", description="Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.") + rateAggregation_field: markdownModel = Field(default=None, alias="rateAggregation", description="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.") + improvementNotation_field: CodeableConceptModel = Field(default=None, alias="improvementNotation", description="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).") + library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing the formal logic used by the measure group.") + population_field: List[Measure_PopulationModel] = Field(default_factory=list, alias="population", description="A population criteria for the measure.") + stratifier_field: List[Measure_StratifierModel] = Field(default_factory=list, alias="stratifier", description="The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.") + +class Measure_PopulationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of population criteria.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this population criteria.") + criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="An expression that specifies the criteria for the population, typically the name of an expression in a library.") + groupDefinition_field: ReferenceModel = Field(default=None, alias="groupDefinition", description="A Group resource that defines this population as a set of characteristics.") + inputPopulationId_field: stringModel = Field(default=None, alias="inputPopulationId", description="The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.") + aggregateMethod_field: CodeableConceptModel = Field(default=None, alias="aggregateMethod", description="Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.") + +class Measure_StratifierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this stratifier criteria.") + criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.") + groupDefinition_field: ReferenceModel = Field(default=None, alias="groupDefinition", description="A Group resource that defines this population as a set of characteristics.") + component_field: List[Measure_ComponentModel] = Field(default_factory=list, alias="component", description="A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.") + +class Measure_ComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this stratifier criteria component.") + criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.") + groupDefinition_field: ReferenceModel = Field(default=None, alias="groupDefinition", description="A Group resource that defines this population as a set of characteristics.") + +class Measure_SupplementalDataModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.") + usage_field: List[CodeableConceptModel] = Field(default_factory=list, alias="usage", description="An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this supplemental data.") + criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.") + +class MeasureReportModel(BaseModel): + resourceType_field: str = "MeasureReport" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this MeasureReport when it is represented in other formats or referenced in a specification, model, design or an instance.") + status_field: codeModel = Field(default=None, alias="status", description="The MeasureReport status. No data will be available until the MeasureReport status is complete.") + type_field: codeModel = Field(default=None, alias="type", description="The type of measure report. This may be an individual report, which provides the score for the measure for an individual member of the population; a subject-listing, which returns the list of members that meet the various criteria in the measure; a summary report, which returns a population count for each of the criteria in the measure; or a data-collection, which enables the MeasureReport to be used to exchange the data-of-interest for a quality measure.") + dataUpdateType_field: codeModel = Field(default=None, alias="dataUpdateType", description="Indicates whether the data submitted in a data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver.") + measure_field: canonicalModel = Field(default=None, alias="measure", description="A reference to the Measure that was calculated to produce this report.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Optional subject identifying the individual or individuals the report is for.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date this measure was calculated.") + reporter_field: ReferenceModel = Field(default=None, alias="reporter", description="The individual or organization that is reporting the data.") + reportingVendor_field: ReferenceModel = Field(default=None, alias="reportingVendor", description="A reference to the vendor who queried the data, calculated results and/or generated the report. The ‘reporting vendor’ is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report.") + location_field: ReferenceModel = Field(default=None, alias="location", description="A reference to the location for which the data is being reported.") + period_field: PeriodModel = Field(default=None, alias="period", description="The reporting period for which the report was calculated.") + inputParameters_field: ReferenceModel = Field(default=None, alias="inputParameters", description="A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report.") + scoring_field: CodeableConceptModel = Field(default=None, alias="scoring", description="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure.") + improvementNotation_field: CodeableConceptModel = Field(default=None, alias="improvementNotation", description="Whether improvement in the measure is noted by an increase or decrease in the measure score.") + group_field: List[MeasureReport_GroupModel] = Field(default_factory=list, alias="group", description="The results of the calculation, one for each population group in the measure.") + supplementalData_field: List[ReferenceModel] = Field(default_factory=list, alias="supplementalData", description="A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource.") + evaluatedResource_field: List[ReferenceModel] = Field(default_factory=list, alias="evaluatedResource", description="Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded.") + +class MeasureReport_GroupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The group from the Measure that corresponds to this group in the MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The meaning of the population group as defined in the measure definition.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Optional subject identifying the individual or individuals the report is for.") + population_field: List[MeasureReport_PopulationModel] = Field(default_factory=list, alias="population", description="The populations that make up the population group, one for each type of population appropriate for the measure.") + measureScoreQuantity_field: QuantityModel = Field(default=None, alias="measureScoreQuantity", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") + measureScoreCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="measureScoreCodeableConcept", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") + measureScorePeriod_field: PeriodModel = Field(default=None, alias="measureScorePeriod", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") + measureScoreRange_field: RangeModel = Field(default=None, alias="measureScoreRange", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") + measureScoreDuration_field: DurationModel = Field(default=None, alias="measureScoreDuration", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") + stratifier_field: List[MeasureReport_StratifierModel] = Field(default_factory=list, alias="stratifier", description="When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.") + +class MeasureReport_PopulationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The population from the Measure that corresponds to this population in the MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of the population.") + count_field: integerModel = Field(default=None, alias="count", description="The number of members of the population.") + subjectResults_field: ReferenceModel = Field(default=None, alias="subjectResults", description="This element refers to a List of individual level MeasureReport resources, one for each subject in this population.") + subjectReport_field: List[ReferenceModel] = Field(default_factory=list, alias="subjectReport", description="A reference to an individual level MeasureReport resource for a member of the population.") + subjects_field: ReferenceModel = Field(default=None, alias="subjects", description="Optional Group identifying the individuals that make up the population.") + +class MeasureReport_StratifierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The meaning of this stratifier, as defined in the measure definition.") + stratum_field: List[MeasureReport_StratumModel] = Field(default_factory=list, alias="stratum", description="This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value.") + +class MeasureReport_StratumModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") + component_field: List[MeasureReport_ComponentModel] = Field(default_factory=list, alias="component", description="A stratifier component value.") + population_field: List[MeasureReport_Population1Model] = Field(default_factory=list, alias="population", description="The populations that make up the stratum, one for each type of population appropriate to the measure.") + measureScoreQuantity_field: QuantityModel = Field(default=None, alias="measureScoreQuantity", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") + measureScoreCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="measureScoreCodeableConcept", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") + measureScorePeriod_field: PeriodModel = Field(default=None, alias="measureScorePeriod", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") + measureScoreRange_field: RangeModel = Field(default=None, alias="measureScoreRange", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") + measureScoreDuration_field: DurationModel = Field(default=None, alias="measureScoreDuration", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") + +class MeasureReport_ComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The code for the stratum component value.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The stratum component value.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The stratum component value.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The stratum component value.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The stratum component value.") + +class MeasureReport_Population1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The population from the Measure that corresponds to this population in the MeasureReport resource.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of the population.") + count_field: integerModel = Field(default=None, alias="count", description="The number of members of the population in this stratum.") + subjectResults_field: ReferenceModel = Field(default=None, alias="subjectResults", description="This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum.") + subjectReport_field: List[ReferenceModel] = Field(default_factory=list, alias="subjectReport", description="A reference to an individual level MeasureReport resource for a member of the population.") + subjects_field: ReferenceModel = Field(default=None, alias="subjects", description="Optional Group identifying the individuals that make up the population.") + +class MedicationModel(BaseModel): + resourceType_field: str = "Medication" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this medication.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.") + status_field: codeModel = Field(default=None, alias="status", description="A code to indicate if the medication is in active use.") + marketingAuthorizationHolder_field: ReferenceModel = Field(default=None, alias="marketingAuthorizationHolder", description="The company or other legal entity that has authorization, from the appropriate drug regulatory authority, to market a medicine in one or more jurisdictions. Typically abbreviated MAH.Note: The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).") + doseForm_field: CodeableConceptModel = Field(default=None, alias="doseForm", description="Describes the form of the item. Powder; tablets; capsule.") + totalVolume_field: QuantityModel = Field(default=None, alias="totalVolume", description="When the specified product code does not infer a package size, this is the specific amount of drug in the product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).") + ingredient_field: List[Medication_IngredientModel] = Field(default_factory=list, alias="ingredient", description="Identifies a particular constituent of interest in the product.") + batch_field: Medication_BatchModel = Field(default=None, alias="batch", description="Information that only applies to packages (not products).") + definition_field: ReferenceModel = Field(default=None, alias="definition", description="A reference to a knowledge resource that provides more information about this medication.") + +class Medication_IngredientModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The ingredient (substance or medication) that the ingredient.strength relates to. This is represented as a concept from a code system or described in another resource (Substance or Medication).") + isActive_field: booleanModel = Field(default=None, alias="isActive", description="Indication of whether this ingredient affects the therapeutic action of the drug.") + strengthRatio_field: RatioModel = Field(default=None, alias="strengthRatio", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") + strengthCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="strengthCodeableConcept", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") + strengthQuantity_field: QuantityModel = Field(default=None, alias="strengthQuantity", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") + +class Medication_BatchModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="The assigned lot number of a batch of the specified product.") + expirationDate_field: dateTimeModel = Field(default=None, alias="expirationDate", description="When this specific batch of product will expire.") + +class MedicationAdministrationModel(BaseModel): + resourceType_field: str = "MedicationAdministration" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan that is fulfilled in whole or in part by this MedicationAdministration.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.") + statusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="statusReason", description="A code indicating why the administration was not performed.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication).") + medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person or animal or group receiving the medication.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says give x if the heartrate exceeds y, then the heart rate can be included using this attribute.") + occurencePeriod_field: PeriodModel = Field(default=None, alias="occurencePeriod", description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.") + occurenceTiming_field: TimingModel = Field(default=None, alias="occurenceTiming", description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.") + recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.") + isSubPotent_field: booleanModel = Field(default=None, alias="isSubPotent", description="An indication that the full dose was not administered.") + subPotentReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subPotentReason", description="The reason or reasons why the full dose was not administered.") + performer_field: List[MedicationAdministration_PerformerModel] = Field(default_factory=list, alias="performer", description="The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A code, Condition or observation that supports why the medication was administered.") + request_field: ReferenceModel = Field(default=None, alias="request", description="The original request, instruction or authority to perform the administration.") + device_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="device", description="The device that is to be used for the administration of the medication (for example, PCA Pump).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the medication administration that is not conveyed by the other attributes.") + dosage_field: MedicationAdministration_DosageModel = Field(default=None, alias="dosage", description="Describes the medication dosage information details e.g. dose, rate, site, route, etc.") + eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="A summary of the events of interest that have occurred, such as when the administration was verified.") + +class MedicationAdministration_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer in the medication administration.") + actor_field: CodeableReferenceModel = Field(default=None, alias="actor", description="Indicates who or what performed the medication administration.") + +class MedicationAdministration_DosageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + text_field: stringModel = Field(default=None, alias="text", description="Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.") + site_field: CodeableConceptModel = Field(default=None, alias="site", description="A coded specification of the anatomic site where the medication first entered the body. For example, left arm.") + route_field: CodeableConceptModel = Field(default=None, alias="route", description="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.") + dose_field: QuantityModel = Field(default=None, alias="dose", description="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.") + rateRatio_field: RatioModel = Field(default=None, alias="rateRatio", description="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.") + rateQuantity_field: QuantityModel = Field(default=None, alias="rateQuantity", description="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.") + +class MedicationDispenseModel(BaseModel): + resourceType_field: str = "MedicationDispense" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Medication Dispense that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan that is fulfilled in whole or in part by this MedicationDispense.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="The procedure or medication administration that triggered the dispense.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the set of dispense events.") + notPerformedReason_field: CodeableReferenceModel = Field(default=None, alias="notPerformedReason", description="Indicates the reason why a dispense was not performed.") + statusChanged_field: dateTimeModel = Field(default=None, alias="statusChanged", description="The date (and maybe time) when the status of the dispense record changed.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Indicates the type of medication dispense (for example, drug classification like ATC, where meds would be administered, legal category of the medication.).") + medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication supplied. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="A link to a resource representing the person or the group to whom the medication will be given.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this event.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information that supports the medication being dispensed. For example, there may be requirements that a specific lab test has been completed prior to dispensing or the patient's weight at the time of dispensing is documented.") + performer_field: List[MedicationDispense_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the event.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The principal physical location where the dispense was performed.") + authorizingPrescription_field: List[ReferenceModel] = Field(default_factory=list, alias="authorizingPrescription", description="Indicates the medication order that is being dispensed against.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of medication that has been dispensed. Includes unit of measure.") + daysSupply_field: QuantityModel = Field(default=None, alias="daysSupply", description="The amount of medication expressed as a timing amount.") + recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date (and maybe time) when the dispense activity started if whenPrepared or whenHandedOver is not populated.") + whenPrepared_field: dateTimeModel = Field(default=None, alias="whenPrepared", description="The time when the dispensed product was packaged and reviewed.") + whenHandedOver_field: dateTimeModel = Field(default=None, alias="whenHandedOver", description="The time the dispensed product was provided to the patient or their representative.") + destination_field: ReferenceModel = Field(default=None, alias="destination", description="Identification of the facility/location where the medication was/will be shipped to, as part of the dispense event.") + receiver_field: List[ReferenceModel] = Field(default_factory=list, alias="receiver", description="Identifies the person who picked up the medication or the location of where the medication was delivered. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professional or a location.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the dispense that could not be conveyed in the other attributes.") + renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") + dosageInstruction_field: List[DosageModel] = Field(default_factory=list, alias="dosageInstruction", description="Indicates how the medication is to be used by the patient.") + substitution_field: MedicationDispense_SubstitutionModel = Field(default=None, alias="substitution", description="Indicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not done.") + eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="A summary of the events of interest that have occurred, such as when the dispense was verified.") + +class MedicationDispense_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication.") + +class MedicationDispense_SubstitutionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + wasSubstituted_field: booleanModel = Field(default=None, alias="wasSubstituted", description="True if the dispenser dispensed a different drug or product from what was prescribed.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code signifying whether a different drug was dispensed from what was prescribed.") + reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="Indicates the reason for the substitution (or lack of substitution) from what was prescribed.") + responsibleParty_field: ReferenceModel = Field(default=None, alias="responsibleParty", description="The person or organization that has primary responsibility for the substitution.") + +class MedicationKnowledgeModel(BaseModel): + resourceType_field: str = "MedicationKnowledge" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this {{title}} when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this {{title}} is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the {{title}} is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this medication.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the {{title}} when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the {{title}} author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence without additional knowledge. (See the versionAlgorithm element.)") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: List[stringModel] = Field(default_factory=list, alias="name", description="All of the names for a medication, for example, the name(s) given to a medication in different countries. For example, acetaminophen and paracetamol or salbutamol and albuterol.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the {{title}}.") + status_field: codeModel = Field(default=None, alias="status", description="A code to indicate if the medication referred to by this MedicationKnowledge is in active use within the drug database or inventory system. The status refers to the validity about the information of the medication and not to its medicinal properties.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this {{title}} is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the {{title}} was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the {{title}} changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the {{title}}.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the {{title}} from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate {{title}}s.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this {{title}} is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: ReferenceModel = Field(default=None, alias="author", description="The creator or owner of the knowledge or information about the medication.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that specifies this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.") + intendedJurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="intendedJurisdiction", description="Lists the jurisdictions that this medication knowledge was written for.") + relatedMedicationKnowledge_field: List[MedicationKnowledge_RelatedMedicationKnowledgeModel] = Field(default_factory=list, alias="relatedMedicationKnowledge", description="Associated or related medications. For example, if the medication is a branded product (e.g. Crestor), this is the Therapeutic Moeity (e.g. Rosuvastatin) or if this is a generic medication (e.g. Rosuvastatin), this would link to a branded product (e.g. Crestor.") + associatedMedication_field: List[ReferenceModel] = Field(default_factory=list, alias="associatedMedication", description="Links to associated medications that could be prescribed, dispensed or administered.") + productType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="productType", description="Category of the medication or product (e.g. branded product, therapeutic moeity, generic product, innovator product, etc.).") + monograph_field: List[MedicationKnowledge_MonographModel] = Field(default_factory=list, alias="monograph", description="Associated documentation about the medication.") + preparationInstruction_field: markdownModel = Field(default=None, alias="preparationInstruction", description="The instructions for preparing the medication.") + cost_field: List[MedicationKnowledge_CostModel] = Field(default_factory=list, alias="cost", description="The price of the medication.") + monitoringProgram_field: List[MedicationKnowledge_MonitoringProgramModel] = Field(default_factory=list, alias="monitoringProgram", description="The program under which the medication is reviewed.") + indicationGuideline_field: List[MedicationKnowledge_IndicationGuidelineModel] = Field(default_factory=list, alias="indicationGuideline", description="Guidelines or protocols that are applicable for the administration of the medication based on indication.") + medicineClassification_field: List[MedicationKnowledge_MedicineClassificationModel] = Field(default_factory=list, alias="medicineClassification", description="Categorization of the medication within a formulary or classification system.") + packaging_field: List[MedicationKnowledge_PackagingModel] = Field(default_factory=list, alias="packaging", description="Information that only applies to packages (not products).") + clinicalUseIssue_field: List[ReferenceModel] = Field(default_factory=list, alias="clinicalUseIssue", description="Potential clinical issue with or between medication(s) (for example, drug-drug interaction, drug-disease contraindication, drug-allergy interaction, etc.).") + storageGuideline_field: List[MedicationKnowledge_StorageGuidelineModel] = Field(default_factory=list, alias="storageGuideline", description="Information on how the medication should be stored, for example, refrigeration temperatures and length of stability at a given temperature.") + regulatory_field: List[MedicationKnowledge_RegulatoryModel] = Field(default_factory=list, alias="regulatory", description="Regulatory information about a medication.") + definitional_field: MedicationKnowledge_DefinitionalModel = Field(default=None, alias="definitional", description="Along with the link to a Medicinal Product Definition resource, this information provides common definitional elements that are needed to understand the specific medication that is being described.") + +class MedicationKnowledge_RelatedMedicationKnowledgeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of the associated medication knowledge reference.") + reference_field: List[ReferenceModel] = Field(default_factory=list, alias="reference", description="Associated documentation about the associated medication knowledge.") + +class MedicationKnowledge_MonographModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of documentation about the medication. (e.g. professional monograph, patient education monograph).") + source_field: ReferenceModel = Field(default=None, alias="source", description="Associated documentation about the medication.") + +class MedicationKnowledge_CostModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + effectiveDate_field: List[PeriodModel] = Field(default_factory=list, alias="effectiveDate", description="The date range for which the cost information of the medication is effective.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of the cost information. For example, manufacturers' cost, patient cost, claim reimbursement cost, actual acquisition cost.") + source_field: stringModel = Field(default=None, alias="source", description="The source or owner that assigns the price to the medication.") + costMoney_field: MoneyModel = Field(default=None, alias="costMoney", description="The price or representation of the cost (for example, Band A, Band B or $, $$) of the medication.") + costCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="costCodeableConcept", description="The price or representation of the cost (for example, Band A, Band B or $, $$) of the medication.") + +class MedicationKnowledge_MonitoringProgramModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of program under which the medication is monitored.") + name_field: stringModel = Field(default=None, alias="name", description="Name of the reviewing program.") + +class MedicationKnowledge_IndicationGuidelineModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + indication_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="indication", description="Indication or reason for use of the medication that applies to the specific administration guideline.") + dosingGuideline_field: List[MedicationKnowledge_DosingGuidelineModel] = Field(default_factory=list, alias="dosingGuideline", description="The guidelines for the dosage of the medication for the indication.") + +class MedicationKnowledge_DosingGuidelineModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + treatmentIntent_field: CodeableConceptModel = Field(default=None, alias="treatmentIntent", description="The overall intention of the treatment, for example, prophylactic, supporative, curative, etc.") + dosage_field: List[MedicationKnowledge_DosageModel] = Field(default_factory=list, alias="dosage", description="Dosage for the medication for the specific guidelines.") + administrationTreatment_field: CodeableConceptModel = Field(default=None, alias="administrationTreatment", description="The type of the treatment that the guideline applies to, for example, long term therapy, first line treatment, etc.") + patientCharacteristic_field: List[MedicationKnowledge_PatientCharacteristicModel] = Field(default_factory=list, alias="patientCharacteristic", description="Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.).") + +class MedicationKnowledge_DosageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type or category of dosage for a given medication (for example, prophylaxis, maintenance, therapeutic, etc.).") + dosage_field: List[DosageModel] = Field(default_factory=list, alias="dosage", description="Dosage for the medication for the specific guidelines.") + +class MedicationKnowledge_PatientCharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The categorization of the specific characteristic that is relevant to the administration guideline (e.g. height, weight, gender).") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The specific characteristic (e.g. height, weight, gender, etc.).") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The specific characteristic (e.g. height, weight, gender, etc.).") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The specific characteristic (e.g. height, weight, gender, etc.).") + +class MedicationKnowledge_MedicineClassificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification).") + classification_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classification", description="Specific category assigned to the medication (e.g. anti-infective, anti-hypertensive, antibiotic, etc.).") + +class MedicationKnowledge_PackagingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + cost_field: List[MedicationKnowledge_CostModel] = Field(default_factory=list, alias="cost", description="The cost of the packaged medication.") + packagedProduct_field: ReferenceModel = Field(default=None, alias="packagedProduct", description="A reference to a PackagedProductDefinition that provides the details of the product that is in the packaging and is being priced.") + +class MedicationKnowledge_StorageGuidelineModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + reference_field: uriModel = Field(default=None, alias="reference", description="Reference to additional information about the storage guidelines.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes about the storage.") + stabilityDuration_field: DurationModel = Field(default=None, alias="stabilityDuration", description="Duration that the medication remains stable if the environmentalSetting is respected.") + environmentalSetting_field: List[MedicationKnowledge_EnvironmentalSettingModel] = Field(default_factory=list, alias="environmentalSetting", description="Describes a setting/value on the environment for the adequate storage of the medication and other substances. Environment settings may involve temperature, humidity, or exposure to light.") + +class MedicationKnowledge_EnvironmentalSettingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifies the category or type of setting (e.g., type of location, temperature, humidity).") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Value associated to the setting. E.g., 40° – 50°F for temperature.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Value associated to the setting. E.g., 40° – 50°F for temperature.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Value associated to the setting. E.g., 40° – 50°F for temperature.") + +class MedicationKnowledge_RegulatoryModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + regulatoryAuthority_field: ReferenceModel = Field(default=None, alias="regulatoryAuthority", description="The authority that is specifying the regulations.") + substitution_field: List[MedicationKnowledge_SubstitutionModel] = Field(default_factory=list, alias="substitution", description="Specifies if changes are allowed when dispensing a medication from a regulatory perspective.") + schedule_field: List[CodeableConceptModel] = Field(default_factory=list, alias="schedule", description="Specifies the schedule of a medication in jurisdiction.") + maxDispense_field: MedicationKnowledge_MaxDispenseModel = Field(default=None, alias="maxDispense", description="The maximum number of units of the medication that can be dispensed in a period.") + +class MedicationKnowledge_SubstitutionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the type of substitution allowed.") + allowed_field: booleanModel = Field(default=None, alias="allowed", description="Specifies if regulation allows for changes in the medication when dispensing.") + +class MedicationKnowledge_MaxDispenseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The maximum number of units of the medication that can be dispensed.") + period_field: DurationModel = Field(default=None, alias="period", description="The period that applies to the maximum number of units.") + +class MedicationKnowledge_DefinitionalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + definition_field: List[ReferenceModel] = Field(default_factory=list, alias="definition", description="Associated definitions for this medication.") + doseForm_field: CodeableConceptModel = Field(default=None, alias="doseForm", description="Describes the form of the item. Powder; tablets; capsule.") + intendedRoute_field: List[CodeableConceptModel] = Field(default_factory=list, alias="intendedRoute", description="The intended or approved route of administration.") + ingredient_field: List[MedicationKnowledge_IngredientModel] = Field(default_factory=list, alias="ingredient", description="Identifies a particular constituent of interest in the product.") + drugCharacteristic_field: List[MedicationKnowledge_DrugCharacteristicModel] = Field(default_factory=list, alias="drugCharacteristic", description="Specifies descriptive properties of the medicine, such as color, shape, imprints, etc.") + +class MedicationKnowledge_IngredientModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="A reference to the resource that provides information about the ingredient.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indication of whether this ingredient affects the therapeutic action of the drug.") + strengthRatio_field: RatioModel = Field(default=None, alias="strengthRatio", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") + strengthCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="strengthCodeableConcept", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") + strengthQuantity_field: QuantityModel = Field(default=None, alias="strengthQuantity", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") + +class MedicationKnowledge_DrugCharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code specifying which characteristic of the medicine is being described (for example, colour, shape, imprint).") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Description of the characteristic.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Description of the characteristic.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Description of the characteristic.") + +class MedicationRequestModel(BaseModel): + resourceType_field: str = "MedicationRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan or request that is fulfilled in whole or in part by this medication request.") + priorPrescription_field: ReferenceModel = Field(default=None, alias="priorPrescription", description="Reference to an order/prescription that is being replaced by this MedicationRequest.") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the current state of the order. Generally, this will be active or completed state.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the MedicationRequest.") + statusChanged_field: dateTimeModel = Field(default=None, alias="statusChanged", description="The date (and perhaps time) when the status was changed.") + intent_field: codeModel = Field(default=None, alias="intent", description="Whether the request is a proposal, plan, or an original order.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="An arbitrary categorization or grouping of the medication request. It could be used for indicating where meds are intended to be administered, eg. in an inpatient setting or in a patient's home, or a legal category of the medication.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Medication Request should be addressed with respect to other requests.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true, indicates that the provider is asking for the patient to either stop taking or to not start taking the specified medication. For example, the patient is taking an existing medication and the provider is changing their medication. They want to create two seperate requests: one to stop using the current medication and another to start the new medication.") + medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual or group for whom the medication has been requested.") + informationSource_field: List[ReferenceModel] = Field(default_factory=list, alias="informationSource", description="The person or organization who provided the information about this request, if the source is someone other than the requestor. This is often used when the MedicationRequest is reported by another person.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this [x] was created or to which the creation of this record is tightly associated.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Information to support fulfilling (i.e. dispensing or administering) of the medication, for example, patient height and weight, a MedicationStatement for the patient).") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="The date (and perhaps time) when the prescription was initially written or authored on.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The individual, organization, or device that initiated the request and has responsibility for its activation.") + reported_field: booleanModel = Field(default=None, alias="reported", description="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.") + performerType_field: CodeableConceptModel = Field(default=None, alias="performerType", description="Indicates the type of performer of the administration of the medication.") + performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="The specified desired performer of the medication treatment (e.g. the performer of the medication administration). For devices, this is the device that is intended to perform the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.") + device_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="device", description="The intended type of device that is to be used for the administration of the medication (for example, PCA Pump).") + recorder_field: ReferenceModel = Field(default=None, alias="recorder", description="The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason or the indication for ordering or not ordering the medication.") + courseOfTherapyType_field: CodeableConceptModel = Field(default=None, alias="courseOfTherapyType", description="The description of the overall pattern of the administration of the medication to the patient.") + insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the prescription that could not be conveyed by the other attributes.") + renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") + effectiveDosePeriod_field: PeriodModel = Field(default=None, alias="effectiveDosePeriod", description="The period over which the medication is to be taken. Where there are multiple dosageInstruction lines (for example, tapering doses), this is the earliest date and the latest end date of the dosageInstructions.") + dosageInstruction_field: List[DosageModel] = Field(default_factory=list, alias="dosageInstruction", description="Specific instructions for how the medication is to be used by the patient.") + dispenseRequest_field: MedicationRequest_DispenseRequestModel = Field(default=None, alias="dispenseRequest", description="Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department.") + substitution_field: MedicationRequest_SubstitutionModel = Field(default=None, alias="substitution", description="Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done.") + eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.") + +class MedicationRequest_DispenseRequestModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + initialFill_field: MedicationRequest_InitialFillModel = Field(default=None, alias="initialFill", description="Indicates the quantity or duration for the first dispense of the medication.") + dispenseInterval_field: DurationModel = Field(default=None, alias="dispenseInterval", description="The minimum period of time that must occur between dispenses of the medication.") + validityPeriod_field: PeriodModel = Field(default=None, alias="validityPeriod", description="This indicates the validity period of a prescription (stale dating the Prescription).") + numberOfRepeatsAllowed_field: unsignedIntModel = Field(default=None, alias="numberOfRepeatsAllowed", description="An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus 3 repeats, then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount that is to be dispensed for one fill.") + expectedSupplyDuration_field: DurationModel = Field(default=None, alias="expectedSupplyDuration", description="Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last.") + dispenser_field: ReferenceModel = Field(default=None, alias="dispenser", description="Indicates the intended performing Organization that will dispense the medication as specified by the prescriber.") + dispenserInstruction_field: List[AnnotationModel] = Field(default_factory=list, alias="dispenserInstruction", description="Provides additional information to the dispenser, for example, counselling to be provided to the patient.") + doseAdministrationAid_field: CodeableConceptModel = Field(default=None, alias="doseAdministrationAid", description="Provides information about the type of adherence packaging to be supplied for the medication dispense.") + +class MedicationRequest_InitialFillModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount or quantity to provide as part of the first dispense.") + duration_field: DurationModel = Field(default=None, alias="duration", description="The length of time that the first dispense is expected to last.") + +class MedicationRequest_SubstitutionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + allowedCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="allowedCodeableConcept", description="True if the prescriber allows a different drug to be dispensed from what was prescribed.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Indicates the reason for the substitution, or why substitution must or must not be performed.") + +class MedicationStatementModel(BaseModel): + resourceType_field: str = "MedicationStatement" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Medication Statement that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular MedicationStatement is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="A code representing the status of recording the medication statement.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Type of medication statement (for example, drug classification like ATC, where meds would be administered, legal category of the medication.).") + medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person, animal or group who is/was taking the medication.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this MedicationStatement.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The interval of time during which it is being asserted that the patient is/was/will be taking the medication (or was not taking, when the MedicationStatement.adherence element is Not Taking).") + effectiveTiming_field: TimingModel = Field(default=None, alias="effectiveTiming", description="The interval of time during which it is being asserted that the patient is/was/will be taking the medication (or was not taking, when the MedicationStatement.adherence element is Not Taking).") + dateAsserted_field: dateTimeModel = Field(default=None, alias="dateAsserted", description="The date when the Medication Statement was asserted by the information source.") + informationSource_field: List[ReferenceModel] = Field(default_factory=list, alias="informationSource", description="The person or organization that provided the information about the taking of this medication. Note: Use derivedFrom when a MedicationStatement is derived from other resources, e.g. Claim or MedicationRequest.") + derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="Allows linking the MedicationStatement to the underlying MedicationRequest, or to other information that supports or is used to derive the MedicationStatement.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A concept, Condition or observation that supports why the medication is being/was taken.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides extra information about the Medication Statement that is not conveyed by the other attributes.") + relatedClinicalInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="relatedClinicalInformation", description="Link to information that is relevant to a medication statement, for example, illicit drug use, gestational age, etc.") + renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") + dosage_field: List[DosageModel] = Field(default_factory=list, alias="dosage", description="Indicates how the medication is/was or should be taken by the patient.") + adherence_field: MedicationStatement_AdherenceModel = Field(default=None, alias="adherence", description="Indicates whether the medication is or is not being consumed or administered.") + +class MedicationStatement_AdherenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Type of the adherence for the medication.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Captures the reason for the current use or adherence of a medication.") + +class MedicinalProductDefinitionModel(BaseModel): + resourceType_field: str = "MedicinalProductDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this product. Could be an MPID. When in development or being regulated, products are typically referenced by official identifiers, assigned by a manufacturer or regulator, and unique to a product (which, when compared to a product instance being prescribed, is actually a product type). See also MedicinalProductDefinition.code.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Regulatory type, e.g. Investigational or Authorized.") + domain_field: CodeableConceptModel = Field(default=None, alias="domain", description="If this medicine applies to human or veterinary uses.") + version_field: stringModel = Field(default=None, alias="version", description="A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status.") + statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the given status became applicable.") + description_field: markdownModel = Field(default=None, alias="description", description="General description of this product.") + combinedPharmaceuticalDoseForm_field: CodeableConceptModel = Field(default=None, alias="combinedPharmaceuticalDoseForm", description="The dose form for a single part product, or combined form of a multiple part product. This is one concept that describes all the components. It does not represent the form with components physically mixed, if that might be necessary, for which see (AdministrableProductDefinition.administrableDoseForm).") + route_field: List[CodeableConceptModel] = Field(default_factory=list, alias="route", description="The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource. MedicinalProductDefinition.route is the same concept as AdministrableProductDefinition.routeOfAdministration.code, and they cannot be used together.") + indication_field: markdownModel = Field(default=None, alias="indication", description="Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate.") + legalStatusOfSupply_field: CodeableConceptModel = Field(default=None, alias="legalStatusOfSupply", description="The legal status of supply of the medicinal product as classified by the regulator.") + additionalMonitoringIndicator_field: CodeableConceptModel = Field(default=None, alias="additionalMonitoringIndicator", description="Whether the Medicinal Product is subject to additional monitoring for regulatory reasons, such as heightened reporting requirements.") + specialMeasures_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialMeasures", description="Whether the Medicinal Product is subject to special measures for regulatory reasons, such as a requirement to conduct post-authorization studies.") + pediatricUseIndicator_field: CodeableConceptModel = Field(default=None, alias="pediatricUseIndicator", description="If authorised for use in children, or infants, neonates etc.") + classification_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classification", description="Allows the product to be classified by various systems, commonly WHO ATC.") + marketingStatus_field: List[MarketingStatusModel] = Field(default_factory=list, alias="marketingStatus", description="Marketing status of the medicinal product, in contrast to marketing authorization. This refers to the product being actually 'on the market' as opposed to being allowed to be on the market (which is an authorization).") + packagedMedicinalProduct_field: List[CodeableConceptModel] = Field(default_factory=list, alias="packagedMedicinalProduct", description="Package type for the product. See also the PackagedProductDefinition resource.") + comprisedOf_field: List[ReferenceModel] = Field(default_factory=list, alias="comprisedOf", description="Types of medicinal manufactured items and/or devices that this product consists of, such as tablets, capsule, or syringes. Used as a direct link when the item's packaging is not being recorded (see also PackagedProductDefinition.package.containedItem.item).") + ingredient_field: List[CodeableConceptModel] = Field(default_factory=list, alias="ingredient", description="The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes.") + impurity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="impurity", description="Any component of the drug product which is not the chemical entity defined as the drug substance, or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products.") + attachedDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="attachedDocument", description="Additional information or supporting documentation about the medicinal product.") + masterFile_field: List[ReferenceModel] = Field(default_factory=list, alias="masterFile", description="A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products.") + contact_field: List[MedicinalProductDefinition_ContactModel] = Field(default_factory=list, alias="contact", description="A product specific contact, person (in a role), or an organization.") + clinicalTrial_field: List[ReferenceModel] = Field(default_factory=list, alias="clinicalTrial", description="Clinical trials or studies that this product is involved in.") + code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="A code that this product is known by, usually within some formal terminology, perhaps assigned by a third party (i.e. not the manufacturer or regulator). Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations.") + name_field: List[MedicinalProductDefinition_NameModel] = Field(default_factory=list, alias="name", description="The product's name, including full name and possibly coded parts.") + crossReference_field: List[MedicinalProductDefinition_CrossReferenceModel] = Field(default_factory=list, alias="crossReference", description="Reference to another product, e.g. for linking authorised to investigational product, or a virtual product.") + operation_field: List[MedicinalProductDefinition_OperationModel] = Field(default_factory=list, alias="operation", description="A manufacturing or administrative process or step associated with (or performed on) the medicinal product.") + characteristic_field: List[MedicinalProductDefinition_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Allows the key product features to be recorded, such as sugar free, modified release, parallel import.") + +class MedicinalProductDefinition_ContactModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information.") + contact_field: ReferenceModel = Field(default=None, alias="contact", description="A product specific contact, person (in a role), or an organization.") + +class MedicinalProductDefinition_NameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + productName_field: stringModel = Field(default=None, alias="productName", description="The full product name.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary.") + part_field: List[MedicinalProductDefinition_PartModel] = Field(default_factory=list, alias="part", description="Coding words or phrases of the name.") + usage_field: List[MedicinalProductDefinition_UsageModel] = Field(default_factory=list, alias="usage", description="Country and jurisdiction where the name applies, and associated language.") + +class MedicinalProductDefinition_PartModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + part_field: stringModel = Field(default=None, alias="part", description="A fragment of a product name.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifying type for this part of the name (e.g. strength part).") + +class MedicinalProductDefinition_UsageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + country_field: CodeableConceptModel = Field(default=None, alias="country", description="Country code for where this name applies.") + jurisdiction_field: CodeableConceptModel = Field(default=None, alias="jurisdiction", description="Jurisdiction code for where this name applies. A jurisdiction may be a sub- or supra-national entity (e.g. a state or a geographic region).") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="Language code for this name.") + +class MedicinalProductDefinition_CrossReferenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + product_field: CodeableReferenceModel = Field(default=None, alias="product", description="Reference to another product, e.g. for linking authorised to investigational product.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of relationship, for instance branded to generic, virtual to actual product, product to development product (investigational), parallel import version.") + +class MedicinalProductDefinition_OperationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableReferenceModel = Field(default=None, alias="type", description="The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here.") + effectiveDate_field: PeriodModel = Field(default=None, alias="effectiveDate", description="Date range of applicability.") + organization_field: List[ReferenceModel] = Field(default_factory=list, alias="organization", description="The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent.") + confidentialityIndicator_field: CodeableConceptModel = Field(default=None, alias="confidentialityIndicator", description="Specifies whether this particular business or manufacturing process is considered proprietary or confidential.") + +class MedicinalProductDefinition_CharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.text.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.text.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.text.") + +class MessageDefinitionModel(BaseModel): + resourceType_field: str = "MessageDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="The business identifier that is used to reference the MessageDefinition and *is* expected to be consistent from server to server.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this message definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the message definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the message definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the message definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the message definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this message definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this message definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the message definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the message definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the message definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the message definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate message definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the message definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this message definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the message definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the message definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + replaces_field: List[canonicalModel] = Field(default_factory=list, alias="replaces", description="A MessageDefinition that is superseded by this definition.") + base_field: canonicalModel = Field(default=None, alias="base", description="The MessageDefinition that is the basis for the contents of this resource.") + parent_field: List[canonicalModel] = Field(default_factory=list, alias="parent", description="Identifies a protocol or workflow that this MessageDefinition represents a step in.") + eventCoding_field: CodingModel = Field(default=None, alias="eventCoding", description="Event code or link to the EventDefinition.") + category_field: codeModel = Field(default=None, alias="category", description="The impact of the content of the message.") + focus_field: List[MessageDefinition_FocusModel] = Field(default_factory=list, alias="focus", description="Identifies the resource (or resources) that are being addressed by the event. For example, the Encounter for an admit message or two Account records for a merge.") + responseRequired_field: codeModel = Field(default=None, alias="responseRequired", description="Declare at a message definition level whether a response is required or only upon error or success, or never.") + allowedResponse_field: List[MessageDefinition_AllowedResponseModel] = Field(default_factory=list, alias="allowedResponse", description="Indicates what types of messages may be sent as an application-level response to this message.") + graph_field: canonicalModel = Field(default=None, alias="graph", description="Graph is Canonical reference to a GraphDefinition. If a URL is provided, it is the canonical reference to a GraphDefinition that it controls what additional resources are to be added to the Bundle when building the message. The GraphDefinition can also specify profiles that apply to the various resources.") + +class MessageDefinition_FocusModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="The kind of resource that must be the focus for this message.") + profile_field: canonicalModel = Field(default=None, alias="profile", description="A profile that reflects constraints for the focal resource (and potentially for related resources).") + min_field: unsignedIntModel = Field(default=None, alias="min", description="Identifies the minimum number of resources of this type that must be pointed to by a message in order for it to be valid against this MessageDefinition.") + max_field: stringModel = Field(default=None, alias="max", description="Identifies the maximum number of resources of this type that must be pointed to by a message in order for it to be valid against this MessageDefinition.") + +class MessageDefinition_AllowedResponseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + message_field: canonicalModel = Field(default=None, alias="message", description="A reference to the message definition that must be adhered to by this supported response.") + situation_field: markdownModel = Field(default=None, alias="situation", description="Provides a description of the circumstances in which this response should be used (as opposed to one of the alternative responses).") + +class MessageHeaderModel(BaseModel): + resourceType_field: str = "MessageHeader" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + eventCoding_field: CodingModel = Field(default=None, alias="eventCoding", description="Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification are defined by the implementation. Alternatively a canonical uri to the EventDefinition.") + destination_field: List[MessageHeader_DestinationModel] = Field(default_factory=list, alias="destination", description="The destination application which the message is intended for.") + sender_field: ReferenceModel = Field(default=None, alias="sender", description="Identifies the sending system to allow the use of a trust relationship.") + author_field: ReferenceModel = Field(default=None, alias="author", description="The logical author of the message - the personor device that decided the described event should happen. When there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions.") + source_field: MessageHeader_SourceModel = Field(default=None, alias="source", description="The source application from which this message originated.") + responsible_field: ReferenceModel = Field(default=None, alias="responsible", description="The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message.") + response_field: MessageHeader_ResponseModel = Field(default=None, alias="response", description="Information about the message that this message is a response to. Only present if this message is a response.") + focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual data of the message - a reference to the root/focus class of the event. This is allowed to be a Parameters resource.") + definition_field: canonicalModel = Field(default=None, alias="definition", description="Permanent link to the MessageDefinition for this message.") + +class MessageHeader_DestinationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + endpointReference_field: ReferenceModel = Field(default=None, alias="endpointReference", description="Indicates where the message should be routed.") + name_field: stringModel = Field(default=None, alias="name", description="Human-readable name for the target system.") + target_field: ReferenceModel = Field(default=None, alias="target", description="Identifies the target end system in situations where the initial message transmission is to an intermediary system.") + receiver_field: ReferenceModel = Field(default=None, alias="receiver", description="Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient.") + +class MessageHeader_SourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + endpointReference_field: ReferenceModel = Field(default=None, alias="endpointReference", description="Identifies the routing target to send acknowledgements to.") + name_field: stringModel = Field(default=None, alias="name", description="Human-readable name for the source system.") + software_field: stringModel = Field(default=None, alias="software", description="May include configuration or other information useful in debugging.") + version_field: stringModel = Field(default=None, alias="version", description="Can convey versions of multiple systems in situations where a message passes through multiple hands.") + contact_field: ContactPointModel = Field(default=None, alias="contact", description="An e-mail, phone, website or other contact point to use to resolve issues with message communications.") + +class MessageHeader_ResponseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The Bundle.identifier of the message to which this message is a response.") + code_field: codeModel = Field(default=None, alias="code", description="Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not.") + details_field: ReferenceModel = Field(default=None, alias="details", description="Full details of any issues found in the message.") + +class MolecularSequenceModel(BaseModel): + resourceType_field: str = "MolecularSequence" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier for this particular sequence instance.") + type_field: codeModel = Field(default=None, alias="type", description="Amino Acid Sequence/ DNA Sequence / RNA Sequence.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Indicates the subject this sequence is associated too.") + focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of a molecular sequence when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, child, or sibling. For example, in trio testing, the subject would be the child (proband) and the focus would be the parent.") + specimen_field: ReferenceModel = Field(default=None, alias="specimen", description="Specimen used for sequencing.") + device_field: ReferenceModel = Field(default=None, alias="device", description="The method for sequencing, for example, chip information.") + performer_field: ReferenceModel = Field(default=None, alias="performer", description="The organization or lab that should be responsible for this result.") + literal_field: stringModel = Field(default=None, alias="literal", description="Sequence that was observed.") + formatted_field: List[AttachmentModel] = Field(default_factory=list, alias="formatted", description="Sequence that was observed as file content. Can be an actual file contents, or referenced by a URL to an external system.") + relative_field: List[MolecularSequence_RelativeModel] = Field(default_factory=list, alias="relative", description="A sequence defined relative to another sequence.") + +class MolecularSequence_RelativeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + coordinateSystem_field: CodeableConceptModel = Field(default=None, alias="coordinateSystem", description="These are different ways of identifying nucleotides or amino acids within a sequence. Different databases and file types may use different systems. For detail definitions, see https://loinc.org/92822-6/ for more detail.") + ordinalPosition_field: integerModel = Field(default=None, alias="ordinalPosition", description="Indicates the order in which the sequence should be considered when putting multiple 'relative' elements together.") + sequenceRange_field: RangeModel = Field(default=None, alias="sequenceRange", description="Indicates the nucleotide range in the composed sequence when multiple 'relative' elements are used together.") + startingSequence_field: MolecularSequence_StartingSequenceModel = Field(default=None, alias="startingSequence", description="A sequence that is used as a starting sequence to describe variants that are present in a sequence analyzed.") + edit_field: List[MolecularSequence_EditModel] = Field(default_factory=list, alias="edit", description="Changes in sequence from the starting sequence.") + +class MolecularSequence_StartingSequenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + genomeAssembly_field: CodeableConceptModel = Field(default=None, alias="genomeAssembly", description="The genome assembly used for starting sequence, e.g. GRCh38.") + chromosome_field: CodeableConceptModel = Field(default=None, alias="chromosome", description="Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)).") + sequenceCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="sequenceCodeableConcept", description="The reference sequence that represents the starting sequence.") + sequenceReference_field: ReferenceModel = Field(default=None, alias="sequenceReference", description="The reference sequence that represents the starting sequence.") + windowStart_field: integerModel = Field(default=None, alias="windowStart", description="Start position of the window on the starting sequence. This value should honor the rules of the coordinateSystem.") + windowEnd_field: integerModel = Field(default=None, alias="windowEnd", description="End position of the window on the starting sequence. This value should honor the rules of the coordinateSystem.") + orientation_field: codeModel = Field(default=None, alias="orientation", description="A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the sense strand, and the opposite complementary strand is the antisense strand.") + strand_field: codeModel = Field(default=None, alias="strand", description="An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm.") + +class MolecularSequence_EditModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + start_field: integerModel = Field(default=None, alias="start", description="Start position of the edit on the starting sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.") + end_field: integerModel = Field(default=None, alias="end", description="End position of the edit on the starting sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.") + replacementSequence_field: stringModel = Field(default=None, alias="replacementSequence", description="Allele that was observed. Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.") + replacedSequence_field: stringModel = Field(default=None, alias="replacedSequence", description="Allele in the starting sequence. Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the starting sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.") + +class NamingSystemModel(BaseModel): + resourceType_field: str = "NamingSystem" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this naming system when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which NamingSystem is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the naming system.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this naming system. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the naming system was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the naming system changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate naming system instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the naming system is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this naming system is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the NamingSystem content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the NamingSystem.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the NamingSystem.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the NamingSystem.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the NamingSystem for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + kind_field: codeModel = Field(default=None, alias="kind", description="Indicates the purpose for the naming system - what kinds of things does it make unique?") + responsible_field: stringModel = Field(default=None, alias="responsible", description="The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Categorizes a naming system for easier search by grouping related naming systems.") + usage_field: stringModel = Field(default=None, alias="usage", description="Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.") + uniqueId_field: List[NamingSystem_UniqueIdModel] = Field(default_factory=list, alias="uniqueId", description="Indicates how the system may be identified when referenced in electronic exchange.") + +class NamingSystem_UniqueIdModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="Identifies the unique identifier scheme used for this particular identifier.") + value_field: stringModel = Field(default=None, alias="value", description="The string that should be sent over the wire to identify the code system or identifier system.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether this identifier is the preferred identifier of this type.") + comment_field: stringModel = Field(default=None, alias="comment", description="Notes about the past or intended usage of this identifier.") + period_field: PeriodModel = Field(default=None, alias="period", description="Identifies the period of time over which this identifier is considered appropriate to refer to the naming system. Outside of this window, the identifier might be non-deterministic.") + authoritative_field: booleanModel = Field(default=None, alias="authoritative", description="Indicates whether this identifier ie endorsed by the official owner of the associated naming system.") + +class NutritionIntakeModel(BaseModel): + resourceType_field: str = "NutritionIntake" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Nutrition Intake that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="Instantiates FHIR protocol or definition.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="Instantiates external protocol or definition.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this event.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="A code representing the patient or other source's judgment about the state of the intake that this assertion is about. Generally, this will be active or completed.") + statusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="statusReason", description="Captures the reason for the current state of the NutritionIntake.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Overall type of nutrition intake.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person, animal or group who is/was consuming the food or fluid.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this NutritionIntake.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The interval of time during which it is being asserted that the patient is/was consuming the food or fluid.") + recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date when the Nutrition Intake was asserted by the information source.") + reportedReference_field: ReferenceModel = Field(default=None, alias="reportedReference", description="The person or organization that provided the information about the consumption of this food or fluid. Note: Use derivedFrom when a NutritionIntake is derived from other resources.") + consumedItem_field: List[NutritionIntake_ConsumedItemModel] = Field(default_factory=list, alias="consumedItem", description="What food or fluid product or item was consumed.") + ingredientLabel_field: List[NutritionIntake_IngredientLabelModel] = Field(default_factory=list, alias="ingredientLabel", description="Total nutrient amounts for the whole meal, product, serving, etc.") + performer_field: List[NutritionIntake_PerformerModel] = Field(default_factory=list, alias="performer", description="Who performed the intake and how they were involved.") + location_field: ReferenceModel = Field(default=None, alias="location", description="Where the intake occurred.") + derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="Allows linking the NutritionIntake to the underlying NutritionOrder, or to other information, such as AllergyIntolerance, that supports or is used to derive the NutritionIntake.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A reason, Condition or observation for why the food or fluid is /was consumed.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides extra information about the Nutrition Intake that is not conveyed by the other attributes.") + +class NutritionIntake_ConsumedItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates what a category of item that was consumed: e.g., food, fluid, enteral, etc.") + nutritionProduct_field: CodeableReferenceModel = Field(default=None, alias="nutritionProduct", description="Identifies the food or fluid product that was consumed. This is potentially a link to a resource representing the details of the food product (TBD) or a simple attribute carrying a code that identifies the food from a known list of foods.") + schedule_field: TimingModel = Field(default=None, alias="schedule", description="Scheduled frequency of consumption.") + amount_field: QuantityModel = Field(default=None, alias="amount", description="Quantity of the specified food.") + rate_field: QuantityModel = Field(default=None, alias="rate", description="Rate at which enteral feeding was administered.") + notConsumed_field: booleanModel = Field(default=None, alias="notConsumed", description="Indicator when a patient is in a setting where it is helpful to know if food was not consumed, such as it was refused, held (as in tube feedings), or otherwise not provided. If a consumption is being recorded from an app, such as MyFitnessPal, this indicator will likely not be used.") + notConsumedReason_field: CodeableConceptModel = Field(default=None, alias="notConsumedReason", description="Document the reason the food or fluid was not consumed, such as refused, held, etc.") + +class NutritionIntake_IngredientLabelModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + nutrient_field: CodeableReferenceModel = Field(default=None, alias="nutrient", description="Total nutrient consumed. This could be a macronutrient (protein, fat, carbohydrate), or a vitamin and mineral.") + amount_field: QuantityModel = Field(default=None, alias="amount", description="Total amount of nutrient consumed.") + +class NutritionIntake_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Type of performer.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Who performed the intake.") + +class NutritionOrderModel(BaseModel): + resourceType_field: str = "NutritionOrder" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this order by the order sender or by the order receiver.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder.") + instantiates_field: List[uriModel] = Field(default_factory=list, alias="instantiates", description="The URL pointing to a protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan or request that is fulfilled in whole or in part by this nutrition order.") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to all nutrition orders that were authorized more or less simultaneously by a single author, representing the composite or group identifier.") + status_field: codeModel = Field(default=None, alias="status", description="The workflow status of the nutrition order/request.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the NutrionOrder and where the request fits into the workflow chain.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Nutrition Order should be addressed with respect to other requests.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person or set of individuals who needs the nutrition order for an oral diet, nutritional supplement and/or enteral or formula feeding.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="An encounter that provides additional information about the healthcare context in which this request is made.") + supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Information to support fulfilling (i.e. dispensing or administering) of the nutrition, for example, patient height and weight).") + dateTime_field: dateTimeModel = Field(default=None, alias="dateTime", description="The date and time that this nutrition order was requested.") + orderer_field: ReferenceModel = Field(default=None, alias="orderer", description="The practitioner that holds legal responsibility for ordering the diet, nutritional supplement, or formula feedings.") + performer_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="performer", description="The specified desired performer of the nutrition order.") + allergyIntolerance_field: List[ReferenceModel] = Field(default_factory=list, alias="allergyIntolerance", description="A link to a record of allergies or intolerances which should be included in the nutrition order.") + foodPreferenceModifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="foodPreferenceModifier", description="This modifier is used to convey order-specific modifiers about the type of food that should be given. These can be derived from patient allergies, intolerances, or preferences such as Halal, Vegan or Kosher. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings.") + excludeFoodModifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="excludeFoodModifier", description="This modifier is used to convey Order-specific modifier about the type of oral food or oral fluids that should not be given. These can be derived from patient allergies, intolerances, or preferences such as No Red Meat, No Soy or No Wheat or Gluten-Free. While it should not be necessary to repeat allergy or intolerance information captured in the referenced AllergyIntolerance resource in the excludeFoodModifier, this element may be used to convey additional specificity related to foods that should be eliminated from the patient’s diet for any reason. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings.") + outsideFoodAllowed_field: booleanModel = Field(default=None, alias="outsideFoodAllowed", description="This modifier is used to convey whether a food item is allowed to be brought in by the patient and/or family. If set to true, indicates that the receiving system does not need to supply the food item.") + oralDiet_field: NutritionOrder_OralDietModel = Field(default=None, alias="oralDiet", description="Diet given orally in contrast to enteral (tube) feeding.") + supplement_field: List[NutritionOrder_SupplementModel] = Field(default_factory=list, alias="supplement", description="Oral nutritional products given in order to add further nutritional value to the patient's diet.") + enteralFormula_field: NutritionOrder_EnteralFormulaModel = Field(default=None, alias="enteralFormula", description="Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the {{title}} by the requester, performer, subject or other participants.") + +class NutritionOrder_OralDietModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind of diet or dietary restriction such as fiber restricted diet or diabetic diet.") + schedule_field: NutritionOrder_ScheduleModel = Field(default=None, alias="schedule", description="Schedule information for an oral diet.") + nutrient_field: List[NutritionOrder_NutrientModel] = Field(default_factory=list, alias="nutrient", description="Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet.") + texture_field: List[NutritionOrder_TextureModel] = Field(default_factory=list, alias="texture", description="Class that describes any texture modifications required for the patient to safely consume various types of solid foods.") + fluidConsistencyType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="fluidConsistencyType", description="The required consistency (e.g. honey-thick, nectar-thick, thin, thickened.) of liquids or fluids served to the patient.") + instruction_field: stringModel = Field(default=None, alias="instruction", description="Free text or additional instructions or information pertaining to the oral diet.") + +class NutritionOrder_ScheduleModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + timing_field: List[TimingModel] = Field(default_factory=list, alias="timing", description="The time period and frequency at which the diet should be given. The diet should be given for the combination of all schedules if more than one schedule is present.") + asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the product is only taken when needed within a specific dosing schedule.") + asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="Indicates whether the product is only taken based on a precondition for taking the product.") + +class NutritionOrder_NutrientModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + modifier_field: CodeableConceptModel = Field(default=None, alias="modifier", description="The nutrient that is being modified such as carbohydrate or sodium.") + amount_field: QuantityModel = Field(default=None, alias="amount", description="The quantity of the specified nutrient to include in diet.") + +class NutritionOrder_TextureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + modifier_field: CodeableConceptModel = Field(default=None, alias="modifier", description="Any texture modifications (for solid foods) that should be made, e.g. easy to chew, chopped, ground, and pureed.") + foodType_field: CodeableConceptModel = Field(default=None, alias="foodType", description="The food type(s) (e.g. meats, all foods) that the texture modification applies to. This could be all foods types.") + +class NutritionOrder_SupplementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableReferenceModel = Field(default=None, alias="type", description="The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement.") + productName_field: stringModel = Field(default=None, alias="productName", description="The product or brand name of the nutritional supplement such as Acme Protein Shake.") + schedule_field: NutritionOrder_Schedule1Model = Field(default=None, alias="schedule", description="Schedule information for a supplement.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of the nutritional supplement to be given.") + instruction_field: stringModel = Field(default=None, alias="instruction", description="Free text or additional instructions or information pertaining to the oral supplement.") + +class NutritionOrder_Schedule1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + timing_field: List[TimingModel] = Field(default_factory=list, alias="timing", description="The time period and frequency at which the supplement should be given. The supplement should be given for the combination of all schedules if more than one schedule is present.") + asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the supplement is only taken when needed within a specific dosing schedule.") + asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="Indicates whether the supplement is only taken based on a precondition for taking the supplement.") + +class NutritionOrder_EnteralFormulaModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + baseFormulaType_field: CodeableReferenceModel = Field(default=None, alias="baseFormulaType", description="The type of enteral or infant formula such as an adult standard formula with fiber or a soy-based infant formula.") + baseFormulaProductName_field: stringModel = Field(default=None, alias="baseFormulaProductName", description="The product or brand name of the enteral or infant formula product such as ACME Adult Standard Formula.") + deliveryDevice_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="deliveryDevice", description="The intended type of device that is to be used for the administration of the enteral formula.") + additive_field: List[NutritionOrder_AdditiveModel] = Field(default_factory=list, alias="additive", description="Indicates modular components to be provided in addition or mixed with the base formula.") + caloricDensity_field: QuantityModel = Field(default=None, alias="caloricDensity", description="The amount of energy (calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula that provides 24 calories per fluid ounce or an adult may require an enteral formula that provides 1.5 calorie/mL.") + routeOfAdministration_field: CodeableConceptModel = Field(default=None, alias="routeOfAdministration", description="The route or physiological path of administration into the patient's gastrointestinal tract for purposes of providing the formula feeding, e.g. nasogastric tube.") + administration_field: List[NutritionOrder_AdministrationModel] = Field(default_factory=list, alias="administration", description="Formula administration instructions as structured data. This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding. An example of this would be an instruction to increase the rate of continuous feeding every 2 hours.") + maxVolumeToDeliver_field: QuantityModel = Field(default=None, alias="maxVolumeToDeliver", description="The maximum total quantity of formula that may be administered to a subject over the period of time, e.g. 1440 mL over 24 hours.") + administrationInstruction_field: markdownModel = Field(default=None, alias="administrationInstruction", description="Free text formula administration, feeding instructions or additional instructions or information.") + +class NutritionOrder_AdditiveModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableReferenceModel = Field(default=None, alias="type", description="Indicates the type of modular component such as protein, carbohydrate, fat or fiber to be provided in addition to or mixed with the base formula.") + productName_field: stringModel = Field(default=None, alias="productName", description="The product or brand name of the type of modular component to be added to the formula.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of additive to be given in addition or to be mixed in with the base formula.") + +class NutritionOrder_AdministrationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + schedule_field: NutritionOrder_Schedule2Model = Field(default=None, alias="schedule", description="Schedule information for an enteral formula.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The volume of formula to provide to the patient per the specified administration schedule.") + rateQuantity_field: QuantityModel = Field(default=None, alias="rateQuantity", description="The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule.") + rateRatio_field: RatioModel = Field(default=None, alias="rateRatio", description="The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule.") + +class NutritionOrder_Schedule2Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + timing_field: List[TimingModel] = Field(default_factory=list, alias="timing", description="The time period and frequency at which the enteral formula should be given. The enteral formula should be given for the combination of all schedules if more than one schedule is present.") + asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the enteral formula is only taken when needed within a specific dosing schedule.") + asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="Indicates whether the enteral formula is only taken based on a precondition for taking the enteral formula.") + +class NutritionProductModel(BaseModel): + resourceType_field: str = "NutritionProduct" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The code assigned to the product, for example a USDA NDB number, a USDA FDC ID number, or a Langual code.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the product.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Nutrition products can have different classifications - according to its nutritional properties, preparation methods, etc.") + manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="The organisation (manufacturer, representative or legal authorization holder) that is responsible for the device.") + nutrient_field: List[NutritionProduct_NutrientModel] = Field(default_factory=list, alias="nutrient", description="The product's nutritional information expressed by the nutrients.") + ingredient_field: List[NutritionProduct_IngredientModel] = Field(default_factory=list, alias="ingredient", description="Ingredients contained in this product.") + knownAllergen_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="knownAllergen", description="Allergens that are known or suspected to be a part of this nutrition product.") + characteristic_field: List[NutritionProduct_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Specifies descriptive properties of the nutrition product.") + instance_field: List[NutritionProduct_InstanceModel] = Field(default_factory=list, alias="instance", description="Conveys instance-level information about this product item. One or several physical, countable instances or occurrences of the product.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the product.") + +class NutritionProduct_NutrientModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The (relevant) nutrients in the product.") + amount_field: List[RatioModel] = Field(default_factory=list, alias="amount", description="The amount of nutrient expressed in one or more units: X per pack / per serving / per dose.") + +class NutritionProduct_IngredientModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The ingredient contained in the product.") + amount_field: List[RatioModel] = Field(default_factory=list, alias="amount", description="The amount of ingredient that is in the product.") + +class NutritionProduct_CharacteristicModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code specifying which characteristic of the product is being described (for example, colour, shape).") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The actual characteristic value corresponding to the type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The actual characteristic value corresponding to the type.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The actual characteristic value corresponding to the type.") + +class NutritionProduct_InstanceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of items or instances that the resource considers, for instance when referring to 2 identical units together.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The identifier for the physical instance, typically a serial number or manufacturer number.") + name_field: stringModel = Field(default=None, alias="name", description="The name for the specific product.") + lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="The identification of the batch or lot of the product.") + expiry_field: dateTimeModel = Field(default=None, alias="expiry", description="The time after which the product is no longer expected to be in proper condition, or its use is not advised or not allowed.") + useBy_field: dateTimeModel = Field(default=None, alias="useBy", description="The time after which the product is no longer expected to be in proper condition, or its use is not advised or not allowed.") + biologicalSourceEvent_field: IdentifierModel = Field(default=None, alias="biologicalSourceEvent", description="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.") + +class ObservationModel(BaseModel): + resourceType_field: str = "Observation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this observation.") + instantiatesReference_field: ReferenceModel = Field(default=None, alias="instantiatesReference", description="The reference to a FHIR ObservationDefinition resource that provides the definition that is adhered to in whole or in part by this Observation instance.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.") + triggeredBy_field: List[Observation_TriggeredByModel] = Field(default_factory=list, alias="triggeredBy", description="Identifies the observation(s) that triggered the performance of this observation.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the result value.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of observation being made.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what was observed. Sometimes this is called the observation name.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient, or group of patients, location, device, organization, procedure or practitioner this observation is about and into whose or what record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.") + focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the physiologically relevant time. This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.") + effectiveTiming_field: TimingModel = Field(default=None, alias="effectiveTiming", description="The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the physiologically relevant time. This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.") + issued_field: instantModel = Field(default=None, alias="issued", description="The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.") + performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="Who was responsible for asserting the observed value as true.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The information determined as a result of making the observation, if the information has a simple value.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The information determined as a result of making the observation, if the information has a simple value.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The information determined as a result of making the observation, if the information has a simple value.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The information determined as a result of making the observation, if the information has a simple value.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The information determined as a result of making the observation, if the information has a simple value.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The information determined as a result of making the observation, if the information has a simple value.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The information determined as a result of making the observation, if the information has a simple value.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The information determined as a result of making the observation, if the information has a simple value.") + dataAbsentReason_field: CodeableConceptModel = Field(default=None, alias="dataAbsentReason", description="Provides a reason why the expected value in the element Observation.value[x] is missing.") + interpretation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="interpretation", description="A categorical assessment of an observation value. For example, high, low, normal.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments about the observation or the results.") + bodySite_field: CodeableConceptModel = Field(default=None, alias="bodySite", description="Indicates the site on the subject's body where the observation was made (i.e. the target site).") + bodyStructure_field: ReferenceModel = Field(default=None, alias="bodyStructure", description="Indicates the body structure on the subject's body where the observation was made (i.e. the target site).") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="Indicates the mechanism used to perform the observation.") + specimen_field: ReferenceModel = Field(default=None, alias="specimen", description="The specimen that was used when this observation was made.") + device_field: ReferenceModel = Field(default=None, alias="device", description="A reference to the device that generates the measurements or the device settings for the device.") + referenceRange_field: List[Observation_ReferenceRangeModel] = Field(default_factory=list, alias="referenceRange", description="Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an OR. In other words, to represent two distinct target populations, two `referenceRange` elements would be used.") + hasMember_field: List[ReferenceModel] = Field(default_factory=list, alias="hasMember", description="This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group.") + derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.") + component_field: List[Observation_ComponentModel] = Field(default_factory=list, alias="component", description="Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations.") + +class Observation_TriggeredByModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + observation_field: ReferenceModel = Field(default=None, alias="observation", description="Reference to the triggering observation.") + type_field: codeModel = Field(default=None, alias="type", description="The type of trigger.") + reason_field: stringModel = Field(default=None, alias="reason", description="Provides the reason why this observation was performed as a result of the observation(s) referenced.") + +class Observation_ReferenceRangeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + low_field: QuantityModel = Field(default=None, alias="low", description="The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).") + high_field: QuantityModel = Field(default=None, alias="high", description="The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).") + normalValue_field: CodeableConceptModel = Field(default=None, alias="normalValue", description="The value of the normal value of the reference range.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.") + appliesTo_field: List[CodeableConceptModel] = Field(default_factory=list, alias="appliesTo", description="Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an AND of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.") + age_field: RangeModel = Field(default=None, alias="age", description="The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.") + text_field: markdownModel = Field(default=None, alias="text", description="Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of Negative or a list or table of normals.") + +class Observation_ComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what was observed. Sometimes this is called the observation code.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The information determined as a result of making the observation, if the information has a simple value.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The information determined as a result of making the observation, if the information has a simple value.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The information determined as a result of making the observation, if the information has a simple value.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The information determined as a result of making the observation, if the information has a simple value.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The information determined as a result of making the observation, if the information has a simple value.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The information determined as a result of making the observation, if the information has a simple value.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The information determined as a result of making the observation, if the information has a simple value.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The information determined as a result of making the observation, if the information has a simple value.") + dataAbsentReason_field: CodeableConceptModel = Field(default=None, alias="dataAbsentReason", description="Provides a reason why the expected value in the element Observation.component.value[x] is missing.") + interpretation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="interpretation", description="A categorical assessment of an observation value. For example, high, low, normal.") + referenceRange_field: List[Observation_ReferenceRangeModel] = Field(default_factory=list, alias="referenceRange", description="Guidance on how to interpret the value by comparison to a normal or recommended range.") + +class ObservationDefinitionModel(BaseModel): + resourceType_field: str = "ObservationDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URL that is used to identify this ObservationDefinition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this ObservationDefinition is (or will be) published. The URL SHOULD include the major version of the ObservationDefinition. For more information see Technical and Business Versions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Business identifiers assigned to this ObservationDefinition. by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the ObservationDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the ObservationDefinition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions are orderable.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the ObservationDefinition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the ObservationDefinition.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the ObservationDefinition.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A flag to indicate that this ObservationDefinition is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the ObservationDefinition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ObservationDefinition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="Helps establish the authority/credibility of the ObservationDefinition. May also allow for contact.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the ObservationDefinition from the consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate ObservationDefinition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A jurisdiction in which the ObservationDefinition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explains why this ObservationDefinition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright statement relating to the ObservationDefinition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the ObservationDefinition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the asset content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the asset content was last reviewed. Review happens periodically after that, but doesn't change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the ObservationDefinition content was or is planned to be effective.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + derivedFromCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFromCanonical", description="The canonical URL pointing to another FHIR-defined ObservationDefinition that is adhered to in whole or in part by this definition.") + derivedFromUri_field: List[uriModel] = Field(default_factory=list, alias="derivedFromUri", description="The URL pointing to an externally-defined observation definition, guideline or other definition that is adhered to in whole or in part by this definition.") + subject_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subject", description="A code that describes the intended kind of subject of Observation instances conforming to this ObservationDefinition.") + performerType_field: CodeableConceptModel = Field(default=None, alias="performerType", description="The type of individual/organization/device that is expected to act upon instances of this definition.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of observation.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what will be observed. Sometimes this is called the observation name.") + permittedDataType_field: List[codeModel] = Field(default_factory=list, alias="permittedDataType", description="The data types allowed for the value element of the instance observations conforming to this ObservationDefinition.") + multipleResultsAllowed_field: booleanModel = Field(default=None, alias="multipleResultsAllowed", description="Multiple results allowed for observations conforming to this ObservationDefinition.") + bodySite_field: CodeableConceptModel = Field(default=None, alias="bodySite", description="The site on the subject's body where the observation is to be made.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="The method or technique used to perform the observation.") + specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="The kind of specimen that this type of observation is produced on.") + device_field: List[ReferenceModel] = Field(default_factory=list, alias="device", description="The measurement model of device or actual device used to produce observations of this type.") + preferredReportName_field: stringModel = Field(default=None, alias="preferredReportName", description="The preferred name to be used when reporting the results of observations conforming to this ObservationDefinition.") + permittedUnit_field: List[CodingModel] = Field(default_factory=list, alias="permittedUnit", description="Units allowed for the valueQuantity element in the instance observations conforming to this ObservationDefinition.") + qualifiedValue_field: List[ObservationDefinition_QualifiedValueModel] = Field(default_factory=list, alias="qualifiedValue", description="A set of qualified values associated with a context and a set of conditions - provides a range for quantitative and ordinal observations and a collection of value sets for qualitative observations.") + hasMember_field: List[ReferenceModel] = Field(default_factory=list, alias="hasMember", description="This ObservationDefinition defines a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group.") + component_field: List[ObservationDefinition_ComponentModel] = Field(default_factory=list, alias="component", description="Some observations have multiple component observations, expressed as separate code value pairs.") + +class ObservationDefinition_QualifiedValueModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + context_field: CodeableConceptModel = Field(default=None, alias="context", description="A concept defining the context for this set of qualified values.") + appliesTo_field: List[CodeableConceptModel] = Field(default_factory=list, alias="appliesTo", description="The target population this set of qualified values applies to.") + gender_field: codeModel = Field(default=None, alias="gender", description="The gender this set of qualified values applies to.") + age_field: RangeModel = Field(default=None, alias="age", description="The age range this set of qualified values applies to.") + gestationalAge_field: RangeModel = Field(default=None, alias="gestationalAge", description="The gestational age this set of qualified values applies to.") + condition_field: stringModel = Field(default=None, alias="condition", description="Text based condition for which the the set of qualified values is valid.") + rangeCategory_field: codeModel = Field(default=None, alias="rangeCategory", description="The category of range of values for continuous or ordinal observations that match the criteria of this set of qualified values.") + range_field: RangeModel = Field(default=None, alias="range", description="The range of values defined for continuous or ordinal observations that match the criteria of this set of qualified values.") + validCodedValueSet_field: canonicalModel = Field(default=None, alias="validCodedValueSet", description="The set of valid coded results for qualitative observations that match the criteria of this set of qualified values.") + normalCodedValueSet_field: canonicalModel = Field(default=None, alias="normalCodedValueSet", description="The set of normal coded results for qualitative observations that match the criteria of this set of qualified values.") + abnormalCodedValueSet_field: canonicalModel = Field(default=None, alias="abnormalCodedValueSet", description="The set of abnormal coded results for qualitative observations that match the criteria of this set of qualified values.") + criticalCodedValueSet_field: canonicalModel = Field(default=None, alias="criticalCodedValueSet", description="The set of critical coded results for qualitative observations that match the criteria of this set of qualified values.") + +class ObservationDefinition_ComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what will be observed.") + permittedDataType_field: List[codeModel] = Field(default_factory=list, alias="permittedDataType", description="The data types allowed for the value element of the instance of this component observations.") + permittedUnit_field: List[CodingModel] = Field(default_factory=list, alias="permittedUnit", description="Units allowed for the valueQuantity element in the instance observations conforming to this ObservationDefinition.") + qualifiedValue_field: List[ObservationDefinition_QualifiedValueModel] = Field(default_factory=list, alias="qualifiedValue", description="A set of qualified values associated with a context and a set of conditions - provides a range for quantitative and ordinal observations and a collection of value sets for qualitative observations.") + +class OperationDefinitionModel(BaseModel): + resourceType_field: str = "OperationDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the operation definition.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of this operation definition.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the operation definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the operation definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this operation definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + kind_field: codeModel = Field(default=None, alias="kind", description="Whether this is an operation or a named query.") + affectsState_field: booleanModel = Field(default=None, alias="affectsState", description="Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting state'.") + code_field: codeModel = Field(default=None, alias="code", description="The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.") + comment_field: markdownModel = Field(default=None, alias="comment", description="Additional information about how to use this operation or named query.") + base_field: canonicalModel = Field(default=None, alias="base", description="Indicates that this operation definition is a constraining profile on the base.") + resource_field: List[codeModel] = Field(default_factory=list, alias="resource", description="The types on which this operation can be executed.") + system_field: booleanModel = Field(default=None, alias="system", description="Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).") + type_field: booleanModel = Field(default=None, alias="type", description="Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).") + instance_field: booleanModel = Field(default=None, alias="instance", description="Indicates whether this operation can be invoked on a particular instance of one of the given types.") + inputProfile_field: canonicalModel = Field(default=None, alias="inputProfile", description="Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.") + outputProfile_field: canonicalModel = Field(default=None, alias="outputProfile", description="Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.") + parameter_field: List[OperationDefinition_ParameterModel] = Field(default_factory=list, alias="parameter", description="The parameters for the operation/query.") + overload_field: List[OperationDefinition_OverloadModel] = Field(default_factory=list, alias="overload", description="Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.") + +class OperationDefinition_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: codeModel = Field(default=None, alias="name", description="The name of used to identify the parameter.") + use_field: codeModel = Field(default=None, alias="use", description="Whether this is an input or an output parameter.") + scope_field: List[codeModel] = Field(default_factory=list, alias="scope", description="If present, indicates that the parameter applies when the operation is being invoked at the specified level.") + min_field: integerModel = Field(default=None, alias="min", description="The minimum number of times this parameter SHALL appear in the request or response.") + max_field: stringModel = Field(default=None, alias="max", description="The maximum number of times this element is permitted to appear in the request or response.") + documentation_field: markdownModel = Field(default=None, alias="documentation", description="Describes the meaning or use of this parameter.") + type_field: codeModel = Field(default=None, alias="type", description="The type for this parameter.") + allowedType_field: List[codeModel] = Field(default_factory=list, alias="allowedType", description="Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.") + targetProfile_field: List[canonicalModel] = Field(default_factory=list, alias="targetProfile", description="Used when the type is Reference or canonical, and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.") + searchType_field: codeModel = Field(default=None, alias="searchType", description="How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.") + binding_field: OperationDefinition_BindingModel = Field(default=None, alias="binding", description="Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).") + referencedFrom_field: List[OperationDefinition_ReferencedFromModel] = Field(default_factory=list, alias="referencedFrom", description="Identifies other resource parameters within the operation invocation that are expected to resolve to this resource.") + part_field: List[OperationDefinition_ParameterModel] = Field(default_factory=list, alias="part", description="The parts of a nested Parameter.") + +class OperationDefinition_BindingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + strength_field: codeModel = Field(default=None, alias="strength", description="Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.") + valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.") + +class OperationDefinition_ReferencedFromModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + source_field: stringModel = Field(default=None, alias="source", description="The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.") + sourceId_field: stringModel = Field(default=None, alias="sourceId", description="The id of the element in the referencing resource that is expected to resolve to this resource.") + +class OperationDefinition_OverloadModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + parameterName_field: List[stringModel] = Field(default_factory=list, alias="parameterName", description="Name of parameter to include in overload.") + comment_field: stringModel = Field(default=None, alias="comment", description="Comments to go on overload.") + +class OperationOutcomeModel(BaseModel): + resourceType_field: str = "OperationOutcome" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + issue_field: List[OperationOutcome_IssueModel] = Field(default_factory=list, alias="issue", description="An error, warning, or information message that results from a system action.") + +class OperationOutcome_IssueModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + severity_field: codeModel = Field(default=None, alias="severity", description="Indicates whether the issue indicates a variation from successful processing.") + code_field: codeModel = Field(default=None, alias="code", description="Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element.") + details_field: CodeableConceptModel = Field(default=None, alias="details", description="Additional details about the error. This may be a text description of the error or a system code that identifies the error.") + diagnostics_field: stringModel = Field(default=None, alias="diagnostics", description="Additional diagnostic information about the issue.") + location_field: List[stringModel] = Field(default_factory=list, alias="location", description="This element is deprecated because it is XML specific. It is replaced by issue.expression, which is format independent, and simpler to parse. ") + expression_field: List[stringModel] = Field(default_factory=list, alias="expression", description="A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.") + +class OrganizationModel(BaseModel): + resourceType_field: str = "Organization" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the organization that is used to identify the organization across multiple disparate systems.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether the organization's record is still in active use.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind(s) of organization that this is.") + name_field: stringModel = Field(default=None, alias="name", description="A name associated with the organization.") + alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="A list of alternate names that the organization is known as, or was known as in the past.") + description_field: markdownModel = Field(default=None, alias="description", description="Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.") + contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") + partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="The organization of which this organization forms a part.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for the organization.") + qualification_field: List[Organization_QualificationModel] = Field(default_factory=list, alias="qualification", description="The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.") + +class Organization_QualificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier allocated to this qualification for this organization.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded representation of the qualification.") + period_field: PeriodModel = Field(default=None, alias="period", description="Period during which the qualification is valid.") + issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="Organization that regulates and issues the qualification.") + +class OrganizationAffiliationModel(BaseModel): + resourceType_field: str = "OrganizationAffiliation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers that are specific to this role.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this organization affiliation record is in active use.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period during which the participatingOrganization is affiliated with the primary organization.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="Organization where the role is available (primary organization/has members).") + participatingOrganization_field: ReferenceModel = Field(default=None, alias="participatingOrganization", description="The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).") + network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="The network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Definition of the role the participatingOrganization plays in the association.") + specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="Specific specialty of the participatingOrganization in the context of the role.") + location_field: List[ReferenceModel] = Field(default_factory=list, alias="location", description="The location(s) at which the role occurs.") + healthcareService_field: List[ReferenceModel] = Field(default_factory=list, alias="healthcareService", description="Healthcare services provided through the role.") + contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available at the participatingOrganization relevant to this Affiliation.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for this role.") + +class PackagedProductDefinitionModel(BaseModel): + resourceType_field: str = "PackagedProductDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier for this package as whole - not the the content of the package. Unique instance identifiers assigned to a package by manufacturers, regulators, drug catalogue custodians or other organizations.") + name_field: stringModel = Field(default=None, alias="name", description="A name for this package. Typically what it would be listed as in a drug formulary or catalogue, inventory etc.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A high level category e.g. medicinal product, raw material, shipping/transport container, etc.") + packageFor_field: List[ReferenceModel] = Field(default_factory=list, alias="packageFor", description="The product this package model relates to, not the contents of the package (for which see package.containedItem).") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status within the lifecycle of this item. A high level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization or marketing status.") + statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the given status became applicable.") + containedItemQuantity_field: List[QuantityModel] = Field(default_factory=list, alias="containedItemQuantity", description="A total of the complete count of contained items of a particular type/form, independent of sub-packaging or organization. This can be considered as the pack size. This attribute differs from containedItem.amount in that it can give a single aggregated count of all tablet types in a pack, even when these are different manufactured items. For example a pill pack of 21 tablets plus 7 sugar tablets, can be denoted here as '28 tablets'. This attribute is repeatable so that the different item types in one pack type can be counted (e.g. a count of vials and count of syringes). Each repeat must have different units, so that it is clear what the different sets of counted items are, and it is not intended to allow different counts of similar items (e.g. not '2 tubes and 3 tubes'). Repeats are not to be used to represent different pack sizes (e.g. 20 pack vs. 50 pack) - which would be different instances of this resource.") + description_field: markdownModel = Field(default=None, alias="description", description="Textual description. Note that this is not the name of the package or product.") + legalStatusOfSupply_field: List[PackagedProductDefinition_LegalStatusOfSupplyModel] = Field(default_factory=list, alias="legalStatusOfSupply", description="The legal status of supply of the packaged item as classified by the regulator.") + marketingStatus_field: List[MarketingStatusModel] = Field(default_factory=list, alias="marketingStatus", description="Allows specifying that an item is on the market for sale, or that it is not available, and the dates and locations associated.") + copackagedIndicator_field: booleanModel = Field(default=None, alias="copackagedIndicator", description="Identifies if the package contains different items, such as when a drug product is supplied with another item e.g. a diluent or adjuvant.") + manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="Manufacturer of this package type. When there are multiple it means these are all possible manufacturers.") + attachedDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="attachedDocument", description="Additional information or supporting documentation about the packaged product.") + packaging_field: PackagedProductDefinition_PackagingModel = Field(default=None, alias="packaging", description="A packaging item, as a container for medically related items, possibly with other packaging items within, or a packaging component, such as bottle cap (which is not a device or a medication manufactured item).") + characteristic_field: List[PackagedProductDefinition_PropertyModel] = Field(default_factory=list, alias="characteristic", description="Allows the key features to be recorded, such as hospital pack, nurse prescribable, calendar pack.") + +class PackagedProductDefinition_LegalStatusOfSupplyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The actual status of supply. Conveys in what situation this package type may be supplied for use.") + jurisdiction_field: CodeableConceptModel = Field(default=None, alias="jurisdiction", description="The place where the legal status of supply applies. When not specified, this indicates it is unknown in this context.") + +class PackagedProductDefinition_PackagingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A business identifier that is specific to this particular part of the packaging, often assigned by the manufacturer. Including possibly Data Carrier Identifier (a GS1 barcode).") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The physical type of the container of the items.") + componentPart_field: booleanModel = Field(default=None, alias="componentPart", description="Is this a part of the packaging (e.g. a cap or bottle stopper), rather than the packaging itself (e.g. a bottle or vial). The latter type are designed be a container, but the former are not.") + quantity_field: integerModel = Field(default=None, alias="quantity", description="The quantity of packaging items contained at this layer of the package. This does not relate to the number of contained items but relates solely to the number of packaging items. When looking at the outermost layer it is always 1. If there are two boxes within, at the next layer it would be 2.") + material_field: List[CodeableConceptModel] = Field(default_factory=list, alias="material", description="Material type of the package item.") + alternateMaterial_field: List[CodeableConceptModel] = Field(default_factory=list, alias="alternateMaterial", description="A possible alternate material for this part of the packaging, that is allowed to be used instead of the usual material (e.g. different types of plastic for a blister sleeve).") + shelfLifeStorage_field: List[ProductShelfLifeModel] = Field(default_factory=list, alias="shelfLifeStorage", description="Shelf Life and storage information.") + manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="Manufacturer of this packaging item. When there are multiple values each one is a potential manufacturer of this packaging item.") + property_field: List[PackagedProductDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General characteristics of this item.") + containedItem_field: List[PackagedProductDefinition_ContainedItemModel] = Field(default_factory=list, alias="containedItem", description="The item(s) within the packaging.") + packaging_field: List[PackagedProductDefinition_PackagingModel] = Field(default_factory=list, alias="packaging", description="Allows containers (and parts of containers) within containers, still as a part of a single packaged product. See also PackagedProductDefinition.packaging.containedItem.item(PackagedProductDefinition).") + +class PackagedProductDefinition_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.") + +class PackagedProductDefinition_ContainedItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The actual item(s) of medication, as manufactured, or a device (typically, but not necessarily, a co-packaged one), or other medically related item (such as food, biologicals, raw materials, medical fluids, gases etc.), as contained in the package. This also allows another whole packaged product to be included, which is solely for the case where a package of other entire packages is wanted - such as a wholesale or distribution pack (for layers within one package, use PackagedProductDefinition.packaging.packaging).") + amount_field: QuantityModel = Field(default=None, alias="amount", description="The number of this type of item within this packaging or for continuous items such as liquids it is the quantity (for example 25ml). See also PackagedProductDefinition.containedItemQuantity (especially the long definition).") + +class ParametersModel(BaseModel): + resourceType_field: str = "Parameters" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + parameter_field: List[Parameters_ParameterModel] = Field(default_factory=list, alias="parameter", description="A parameter passed to or received from the operation.") + +class Parameters_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The name of the parameter (reference to the operation definition).") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="Conveys the content if the parameter is a data type.") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="Conveys the content if the parameter is a data type.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="Conveys the content if the parameter is a data type.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Conveys the content if the parameter is a data type.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Conveys the content if the parameter is a data type.") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="Conveys the content if the parameter is a data type.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Conveys the content if the parameter is a data type.") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="Conveys the content if the parameter is a data type.") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="Conveys the content if the parameter is a data type.") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="Conveys the content if the parameter is a data type.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="Conveys the content if the parameter is a data type.") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="Conveys the content if the parameter is a data type.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Conveys the content if the parameter is a data type.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="Conveys the content if the parameter is a data type.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Conveys the content if the parameter is a data type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Conveys the content if the parameter is a data type.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Conveys the content if the parameter is a data type.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Conveys the content if the parameter is a data type.") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="Conveys the content if the parameter is a data type.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Conveys the content if the parameter is a data type.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="Conveys the content if the parameter is a data type.") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="Conveys the content if the parameter is a data type.") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="Conveys the content if the parameter is a data type.") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="Conveys the content if the parameter is a data type.") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="Conveys the content if the parameter is a data type.") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="Conveys the content if the parameter is a data type.") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="Conveys the content if the parameter is a data type.") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="Conveys the content if the parameter is a data type.") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="Conveys the content if the parameter is a data type.") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="Conveys the content if the parameter is a data type.") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="Conveys the content if the parameter is a data type.") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="Conveys the content if the parameter is a data type.") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="Conveys the content if the parameter is a data type.") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="Conveys the content if the parameter is a data type.") + resource_field: ResourceListModel = Field(default=None, alias="resource", description="Conveys the content if the parameter is a whole resource.") + part_field: List[Parameters_ParameterModel] = Field(default_factory=list, alias="part", description="A named part of a multi-part parameter.") + +class PatientModel(BaseModel): + resourceType: str = "Patient" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier for this patient.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this patient record is in active use. ") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the individual.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.") + birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the individual.") + address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="An address for the individual.") + maritalStatus_field: CodeableConceptModel = Field(default=None, alias="maritalStatus", description="This field contains a patient's most recent marital (civil) status.") + photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the patient.") + contact_field: List[Patient_ContactModel] = Field(default_factory=list, alias="contact", description="A contact party (e.g. guardian, partner, friend) for the patient.") + communication_field: List[Patient_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the patient about his or her health.") + generalPractitioner_field: List[ReferenceModel] = Field(default_factory=list, alias="generalPractitioner", description="Patient's nominated care provider.") + managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="Organization that is the custodian of the patient record.") + link_field: List[Patient_LinkModel] = Field(default_factory=list, alias="link", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") + +class Patient_ContactModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + relationship_field: List[CodeableConceptModel] = Field(default_factory=list, alias="relationship", description="The nature of the relationship between the patient and the contact person.") + name_field: HumanNameModel = Field(default=None, alias="name", description="A name associated with the contact person.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") + address_field: AddressModel = Field(default=None, alias="address", description="Address for the contact person.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="Organization on behalf of which the contact is acting or for which the contact is working.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period during which this contact person or organization is valid to be contacted relating to this patient.") + +class Patient_CommunicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).") + +class Patient_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + other_field: ReferenceModel = Field(default=None, alias="other", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") + type_field: codeModel = Field(default=None, alias="type", description="The type of link between this patient resource and another patient resource.") + +class PaymentNoticeModel(BaseModel): + resourceType_field: str = "PaymentNotice" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this payment notice.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + request_field: ReferenceModel = Field(default=None, alias="request", description="Reference of resource for which payment is being made.") + response_field: ReferenceModel = Field(default=None, alias="response", description="Reference of response to resource for which payment is being made.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date when this resource was created.") + reporter_field: ReferenceModel = Field(default=None, alias="reporter", description="The party who reports the payment notice.") + payment_field: ReferenceModel = Field(default=None, alias="payment", description="A reference to the payment which is the subject of this notice.") + paymentDate_field: dateModel = Field(default=None, alias="paymentDate", description="The date when the above payment action occurred.") + payee_field: ReferenceModel = Field(default=None, alias="payee", description="The party who will receive or has received payment that is the subject of this notification.") + recipient_field: ReferenceModel = Field(default=None, alias="recipient", description="The party who is notified of the payment status.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="The amount sent to the payee.") + paymentStatus_field: CodeableConceptModel = Field(default=None, alias="paymentStatus", description="A code indicating whether payment has been sent or cleared.") + +class PaymentReconciliationModel(BaseModel): + resourceType_field: str = "PaymentReconciliation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this payment reconciliation.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code to indicate the nature of the payment such as payment, adjustment.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + kind_field: CodeableConceptModel = Field(default=None, alias="kind", description="The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time for which payments have been gathered into this bulk payment for settlement.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date when the resource was created.") + enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Payment enterer if not the actual payment issuer.") + issuerType_field: CodeableConceptModel = Field(default=None, alias="issuerType", description="The type of the source such as patient or insurance.") + paymentIssuer_field: ReferenceModel = Field(default=None, alias="paymentIssuer", description="The party who generated the payment.") + request_field: ReferenceModel = Field(default=None, alias="request", description="Original request resource reference.") + requestor_field: ReferenceModel = Field(default=None, alias="requestor", description="The practitioner who is responsible for the services rendered to the patient.") + outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of a request for a reconciliation.") + disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the request for the reconciliation.") + date_field: dateModel = Field(default=None, alias="date", description="The date of payment as indicated on the financial instrument.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location of the site or device for electronic transfers or physical location for cash payments.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="The means of payment such as check, card cash, or electronic funds transfer.") + cardBrand_field: stringModel = Field(default=None, alias="cardBrand", description="The card brand such as debit, Visa, Amex etc. used if a card is the method of payment.") + accountNumber_field: stringModel = Field(default=None, alias="accountNumber", description="A portion of the account number, often the last 4 digits, used for verification not charging purposes.") + expirationDate_field: dateModel = Field(default=None, alias="expirationDate", description="The year and month (YYYY-MM) when the instrument, typically card, expires.") + processor_field: stringModel = Field(default=None, alias="processor", description="The name of the card processor, etf processor, bank for checks.") + referenceNumber_field: stringModel = Field(default=None, alias="referenceNumber", description="The check number, eft reference, car processor reference.") + authorization_field: stringModel = Field(default=None, alias="authorization", description="An alphanumeric issued by the processor to confirm the successful issuance of payment.") + tenderedAmount_field: MoneyModel = Field(default=None, alias="tenderedAmount", description="The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid.") + returnedAmount_field: MoneyModel = Field(default=None, alias="returnedAmount", description="The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="Total payment amount as indicated on the financial instrument.") + paymentIdentifier_field: IdentifierModel = Field(default=None, alias="paymentIdentifier", description="Issuer's unique identifier for the payment instrument.") + allocation_field: List[PaymentReconciliation_AllocationModel] = Field(default_factory=list, alias="allocation", description="Distribution of the payment amount for a previously acknowledged payable.") + formCode_field: CodeableConceptModel = Field(default=None, alias="formCode", description="A code for the form to be used for printing the content.") + processNote_field: List[PaymentReconciliation_ProcessNoteModel] = Field(default_factory=list, alias="processNote", description="A note that describes or explains the processing in a human readable form.") + +class PaymentReconciliation_AllocationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Unique identifier for the current payment item for the referenced payable.") + predecessor_field: IdentifierModel = Field(default=None, alias="predecessor", description="Unique identifier for the prior payment item for the referenced payable.") + target_field: ReferenceModel = Field(default=None, alias="target", description="Specific resource to which the payment/adjustment/advance applies.") + targetItemIdentifier_field: IdentifierModel = Field(default=None, alias="targetItemIdentifier", description=" Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter to which this payment applies, may be completed by the receiver, used for search.") + account_field: ReferenceModel = Field(default=None, alias="account", description="The Account to which this payment applies, may be completed by the receiver, used for search.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code to indicate the nature of the payment.") + submitter_field: ReferenceModel = Field(default=None, alias="submitter", description="The party which submitted the claim or financial transaction.") + response_field: ReferenceModel = Field(default=None, alias="response", description="A resource, such as a ClaimResponse, which contains a commitment to payment.") + date_field: dateModel = Field(default=None, alias="date", description="The date from the response resource containing a commitment to pay.") + responsible_field: ReferenceModel = Field(default=None, alias="responsible", description="A reference to the individual who is responsible for inquiries regarding the response and its payment.") + payee_field: ReferenceModel = Field(default=None, alias="payee", description="The party which is receiving the payment.") + amount_field: MoneyModel = Field(default=None, alias="amount", description="The monetary amount allocated from the total payment to the payable.") + +class PaymentReconciliation_ProcessNoteModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The business purpose of the note text.") + text_field: stringModel = Field(default=None, alias="text", description="The explanation or description associated with the processing.") + +class PermissionModel(BaseModel): + resourceType_field: str = "Permission" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + status_field: codeModel = Field(default=None, alias="status", description="Status.") + asserter_field: ReferenceModel = Field(default=None, alias="asserter", description="The person or entity that asserts the permission.") + date_field: List[dateTimeModel] = Field(default_factory=list, alias="date", description="The date that permission was asserted.") + validity_field: PeriodModel = Field(default=None, alias="validity", description="The period in which the permission is active.") + justification_field: Permission_JustificationModel = Field(default=None, alias="justification", description="The asserted justification for using the data.") + combining_field: codeModel = Field(default=None, alias="combining", description="Defines a procedure for arriving at an access decision given the set of rules.") + rule_field: List[Permission_RuleModel] = Field(default_factory=list, alias="rule", description="A set of rules.") + +class Permission_JustificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + basis_field: List[CodeableConceptModel] = Field(default_factory=list, alias="basis", description="This would be a codeableconcept, or a coding, which can be constrained to , for example, the 6 grounds for processing in GDPR.") + evidence_field: List[ReferenceModel] = Field(default_factory=list, alias="evidence", description="Justifing rational.") + +class Permission_RuleModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="deny | permit.") + data_field: List[Permission_DataModel] = Field(default_factory=list, alias="data", description="A description or definition of which activities are allowed to be done on the data.") + activity_field: List[Permission_ActivityModel] = Field(default_factory=list, alias="activity", description="A description or definition of which activities are allowed to be done on the data.") + limit_field: List[CodeableConceptModel] = Field(default_factory=list, alias="limit", description="What limits apply to the use of the data.") + +class Permission_DataModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + resource_field: List[Permission_ResourceModel] = Field(default_factory=list, alias="resource", description="Explicit FHIR Resource references.") + security_field: List[CodingModel] = Field(default_factory=list, alias="security", description="The data in scope are those with the given codes present in that data .meta.security element.") + period_field: List[PeriodModel] = Field(default_factory=list, alias="period", description="Clinical or Operational Relevant period of time that bounds the data controlled by this rule.") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="Used when other data selection elements are insufficient.") + +class Permission_ResourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + meaning_field: codeModel = Field(default=None, alias="meaning", description="How the resource reference is interpreted when testing consent restrictions.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a specific resource that defines which resources are covered by this consent.") + +class Permission_ActivityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + actor_field: List[ReferenceModel] = Field(default_factory=list, alias="actor", description="The actor(s) authorized for the defined activity.") + action_field: List[CodeableConceptModel] = Field(default_factory=list, alias="action", description="Actions controlled by this Rule.") + purpose_field: List[CodeableConceptModel] = Field(default_factory=list, alias="purpose", description="The purpose for which the permission is given.") + +class PersonModel(BaseModel): + resourceType_field: str = "Person" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for a person within a particular scope.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this person's record is in active use.") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the person.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender.") + birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The birth date for the person.") + address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="One or more addresses for the person.") + maritalStatus_field: CodeableConceptModel = Field(default=None, alias="maritalStatus", description="This field contains a person's most recent marital (civil) status.") + photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="An image that can be displayed as a thumbnail of the person to enhance the identification of the individual.") + communication_field: List[Person_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the person about his or her health.") + managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization that is the custodian of the person record.") + link_field: List[Person_LinkModel] = Field(default_factory=list, alias="link", description="Link to a resource that concerns the same actual person.") + +class Person_CommunicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).") + +class Person_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + target_field: ReferenceModel = Field(default=None, alias="target", description="The resource to which this actual person is associated.") + assurance_field: codeModel = Field(default=None, alias="assurance", description="Level of assurance that this link is associated with the target resource.") + +class PlanDefinitionModel(BaseModel): + resourceType_field: str = "PlanDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this plan definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this plan definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the plan definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this plan definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the plan definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the plan definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the plan definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the plan definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this plan definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this plan definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the plan definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the plan definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the plan definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the plan definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate plan definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the plan definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this plan definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the plan definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the plan definition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the plan definition content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the plan definition. Topics provide a high-level categorization of the definition that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") + subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the plan definition giving additional information about its content.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A high-level category for the plan definition that distinguishes the kinds of systems that would be interested in the plan definition.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the plan definition. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the plan definition. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") + usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the plan definition is used from a clinical perspective.") + library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing any formal logic used by the plan definition.") + goal_field: List[PlanDefinition_GoalModel] = Field(default_factory=list, alias="goal", description="A goal describes an expected outcome that activities within the plan are intended to achieve. For example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, meeting the acceptance criteria for a test as specified by a quality specification, etc.") + actor_field: List[PlanDefinition_ActorModel] = Field(default_factory=list, alias="actor", description="Actors represent the individuals or groups involved in the execution of the defined set of activities.") + action_field: List[PlanDefinition_ActionModel] = Field(default_factory=list, alias="action", description="An action or group of actions to be taken as part of the plan. For example, in clinical care, an action would be to prescribe a particular indicated medication, or perform a particular test as appropriate. In pharmaceutical quality, an action would be the test that needs to be performed on a drug product as defined in the quality specification.") + asNeededCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="asNeededCodeableConcept", description="If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example pain, on flare-up, etc.") + +class PlanDefinition_GoalModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Indicates a category the goal falls within.") + description_field: CodeableConceptModel = Field(default=None, alias="description", description="Human-readable and/or coded description of a specific desired objective of care, such as control blood pressure or negotiate an obstacle course or dance with child at wedding.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Identifies the expected level of importance associated with reaching/sustaining the defined goal.") + start_field: CodeableConceptModel = Field(default=None, alias="start", description="The event after which the goal should begin being pursued.") + addresses_field: List[CodeableConceptModel] = Field(default_factory=list, alias="addresses", description="Identifies problems, conditions, issues, or concerns the goal is intended to address.") + documentation_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="documentation", description="Didactic or other informational resources associated with the goal that provide further supporting information about the goal. Information resources can include inline text commentary and links to web resources.") + target_field: List[PlanDefinition_TargetModel] = Field(default_factory=list, alias="target", description="Indicates what should be done and within what timeframe.") + +class PlanDefinition_TargetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + measure_field: CodeableConceptModel = Field(default=None, alias="measure", description="The parameter whose value is to be tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.") + detailQuantity_field: QuantityModel = Field(default=None, alias="detailQuantity", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") + detailRange_field: RangeModel = Field(default=None, alias="detailRange", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") + detailCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="detailCodeableConcept", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") + detailRatio_field: RatioModel = Field(default=None, alias="detailRatio", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") + due_field: DurationModel = Field(default=None, alias="due", description="Indicates the timeframe after the start of the goal in which the goal should be met.") + +class PlanDefinition_ActorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="A descriptive label for the actor.") + description_field: markdownModel = Field(default=None, alias="description", description="A description of how the actor fits into the overall actions of the plan definition.") + option_field: List[PlanDefinition_OptionModel] = Field(default_factory=list, alias="option", description="The characteristics of the candidates that could serve as the actor.") + +class PlanDefinition_OptionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") + typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") + typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") + +class PlanDefinition_ActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the PlanDefinition to allow linkage within the realized CarePlan and/or RequestOrchestration.") + prefix_field: stringModel = Field(default=None, alias="prefix", description="A user-visible prefix for the action. For example a section or item numbering such as 1. or A.") + title_field: stringModel = Field(default=None, alias="title", description="The textual description of the action displayed to a user. For example, when the action is a test to be performed, the title would be the title of the test such as Assay by HPLC.") + description_field: markdownModel = Field(default=None, alias="description", description="A brief description of the action used to provide a summary to display to the user.") + textEquivalent_field: markdownModel = Field(default=None, alias="textEquivalent", description="A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamically.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the action should be addressed with respect to other actions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that provides a meaning, grouping, or classification for the action or action group. For example, a section may have a LOINC code for the section of a documentation template. In pharmaceutical quality, an action (Test) such as pH could be classified as a physical property.") + reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="A description of why this action is necessary or appropriate.") + documentation_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="documentation", description="Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resources.") + goalId_field: List[idModel] = Field(default_factory=list, alias="goalId", description="Identifies goals that this action supports. The reference must be to a goal element defined within this plan definition. In pharmaceutical quality, a goal represents acceptance criteria (Goal) for a given action (Test), so the goalId would be the unique id of a defined goal element establishing the acceptance criteria for the action.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code, group definition, or canonical reference that describes the intended subject of the action and its children, if any. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code, group definition, or canonical reference that describes the intended subject of the action and its children, if any. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") + trigger_field: List[TriggerDefinitionModel] = Field(default_factory=list, alias="trigger", description="A description of when the action should be triggered. When multiple triggers are specified on an action, any triggering event invokes the action.") + condition_field: List[PlanDefinition_ConditionModel] = Field(default_factory=list, alias="condition", description="An expression that describes applicability criteria or start/stop conditions for the action.") + input_field: List[PlanDefinition_InputModel] = Field(default_factory=list, alias="input", description="Defines input data requirements for the action.") + output_field: List[PlanDefinition_OutputModel] = Field(default_factory=list, alias="output", description="Defines the outputs of the action, if any.") + relatedAction_field: List[PlanDefinition_RelatedActionModel] = Field(default_factory=list, alias="relatedAction", description="A relationship to another action such as before or 30-60 minutes after start of.") + timingAge_field: AgeModel = Field(default=None, alias="timingAge", description="An optional value describing when the action should be performed.") + timingDuration_field: DurationModel = Field(default=None, alias="timingDuration", description="An optional value describing when the action should be performed.") + timingRange_field: RangeModel = Field(default=None, alias="timingRange", description="An optional value describing when the action should be performed.") + timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="An optional value describing when the action should be performed.") + location_field: CodeableReferenceModel = Field(default=None, alias="location", description="Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc.") + participant_field: List[PlanDefinition_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who should participate in performing the action described.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of action to perform (create, update, remove).") + groupingBehavior_field: codeModel = Field(default=None, alias="groupingBehavior", description="Defines the grouping behavior for the action and its children.") + selectionBehavior_field: codeModel = Field(default=None, alias="selectionBehavior", description="Defines the selection behavior for the action and its children.") + requiredBehavior_field: codeModel = Field(default=None, alias="requiredBehavior", description="Defines the required behavior for the action.") + precheckBehavior_field: codeModel = Field(default=None, alias="precheckBehavior", description="Defines whether the action should usually be preselected.") + cardinalityBehavior_field: codeModel = Field(default=None, alias="cardinalityBehavior", description="Defines whether the action can be selected multiple times.") + transform_field: canonicalModel = Field(default=None, alias="transform", description="A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.") + dynamicValue_field: List[PlanDefinition_DynamicValueModel] = Field(default_factory=list, alias="dynamicValue", description="Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the result.") + action_field: List[PlanDefinition_ActionModel] = Field(default_factory=list, alias="action", description="Sub actions that are contained within the action. The behavior of this action determines the functionality of the sub-actions. For example, a selection behavior of at-most-one indicates that of the sub-actions, at most one may be chosen as part of realizing the action definition.") + +class PlanDefinition_ConditionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + kind_field: codeModel = Field(default=None, alias="kind", description="The kind of condition.") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression that returns true or false, indicating whether the condition is satisfied.") + +class PlanDefinition_InputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") + requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that is to be provided as input to the action.") + relatedData_field: idModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that provides data to this input.") + +class PlanDefinition_OutputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") + requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that results as output from the action.") + relatedData_field: stringModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that is results as output from the action.") + +class PlanDefinition_RelatedActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + targetId_field: idModel = Field(default=None, alias="targetId", description="The element id of the target related action.") + relationship_field: codeModel = Field(default=None, alias="relationship", description="The relationship of the start of this action to the related action.") + endRelationship_field: codeModel = Field(default=None, alias="endRelationship", description="The relationship of the end of this action to the related action.") + offsetDuration_field: DurationModel = Field(default=None, alias="offsetDuration", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") + offsetRange_field: RangeModel = Field(default=None, alias="offsetRange", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") + +class PlanDefinition_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + actorId_field: stringModel = Field(default=None, alias="actorId", description="A reference to the id element of the actor who will participate in this action.") + type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") + typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") + typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Indicates how the actor will be involved in the action - author, reviewer, witness, etc.") + +class PlanDefinition_DynamicValueModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression specifying the value of the customized element.") + +class PractitionerModel(BaseModel): + resourceType_field: str = "Practitioner" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person in this role.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this practitioner's record is in active use.") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="The name(s) associated with the practitioner.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the practitioner, e.g. a telephone number or an email address.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.") + birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the practitioner.") + address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="Address(es) of the practitioner that are not role specific (typically home address). ") + photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the person.") + qualification_field: List[Practitioner_QualificationModel] = Field(default_factory=list, alias="qualification", description="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.") + communication_field: List[Practitioner_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.") + +class Practitioner_QualificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person's qualification.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded representation of the qualification.") + period_field: PeriodModel = Field(default=None, alias="period", description="Period during which the qualification is valid.") + issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="Organization that regulates and issues the qualification.") + +class Practitioner_CommunicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).") + +class PractitionerRoleModel(BaseModel): + resourceType_field: str = "PractitionerRole" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business Identifiers that are specific to a role/location.") + active_field: booleanModel = Field(default=None, alias="active", description=" Whether this practitioner role record is in active use. Some systems may use this property to mark non-active practitioners, such as those that are not currently employed.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period during which the person is authorized to act as a practitioner in these role(s) for the organization.") + practitioner_field: ReferenceModel = Field(default=None, alias="practitioner", description="Practitioner that is able to provide the defined services for the organization.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="The organization where the Practitioner performs the roles associated.") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Roles which this practitioner is authorized to perform for the organization.") + specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that describes the functional role they are practicing at a given organization or location.") + location_field: List[ReferenceModel] = Field(default_factory=list, alias="location", description="The location(s) at which this practitioner provides care.") + healthcareService_field: List[ReferenceModel] = Field(default_factory=list, alias="healthcareService", description="The list of healthcare services that this worker provides for this role's Organization/Location(s).") + contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") + characteristic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="characteristic", description="Collection of characteristics (attributes).") + communication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="communication", description="A language the practitioner can use in patient communication. The practitioner may know several languages (listed in practitioner.communication), however these are the languages that could be advertised in a directory for a patient to search.") + availability_field: List[AvailabilityModel] = Field(default_factory=list, alias="availability", description="A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.") + endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description=" Technical endpoints providing access to services operated for the practitioner with this role. Commonly used for locating scheduling services, or identifying where to send referrals electronically.") + +class ProcedureModel(BaseModel): + resourceType_field: str = "Procedure" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A reference to a resource that contains details of the request for this procedure.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular procedure is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the procedure.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the procedure for searching, sorting and display purposes (e.g. Surgical Procedure).") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. Laparoscopic Appendectomy).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="On whom or on what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations). If the actual focus of the procedure is different from the subject, the focus element specifies the actual focus of the procedure.") + focus_field: ReferenceModel = Field(default=None, alias="focus", description="Who is the target of the procedure when it is not the subject of record only. If focus is not present, then subject is the focus. If focus is present and the subject is one of the targets of the procedure, include subject as a focus as well. If focus is present and the subject is not included in focus, it implies that the procedure was only targeted on the focus. For example, when a caregiver is given education for a patient, the caregiver would be the focus and the procedure record is associated with the subject (e.g. patient). For example, use focus when recording the target of the education, training, or counseling is the parent or relative of a patient.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + occurrenceAge_field: AgeModel = Field(default=None, alias="occurrenceAge", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + occurrenceRange_field: RangeModel = Field(default=None, alias="occurrenceRange", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") + recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).") + recorder_field: ReferenceModel = Field(default=None, alias="recorder", description="Individual who recorded the record and takes responsibility for its content.") + reportedReference_field: ReferenceModel = Field(default=None, alias="reportedReference", description="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.") + performer_field: List[Procedure_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the procedure and how they were involved.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The coded reason or reference why the procedure was performed. This may be a coded entity of some type, be present as text, or be a reference to one of several resources that justify the procedure.") + bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.") + outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="The outcome of the procedure - did it resolve the reasons for the procedure being performed?") + report_field: List[ReferenceModel] = Field(default_factory=list, alias="report", description="This could be a histology result, pathology report, surgical report, etc.") + complication_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="complication", description="Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.") + followUp_field: List[CodeableConceptModel] = Field(default_factory=list, alias="followUp", description="If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any other notes and comments about the procedure.") + focalDevice_field: List[Procedure_FocalDeviceModel] = Field(default_factory=list, alias="focalDevice", description="A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.") + used_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="used", description="Identifies medications, devices and any other substance used as part of the procedure.") + supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available.") + +class Procedure_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what performed the procedure.") + onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="The Organization the Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf of.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the performer performed the procedure.") + +class Procedure_FocalDeviceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + action_field: CodeableConceptModel = Field(default=None, alias="action", description="The kind of change that happened to the device during the procedure.") + manipulated_field: ReferenceModel = Field(default=None, alias="manipulated", description="The device that was manipulated (changed) during the procedure.") + +class ProvenanceModel(BaseModel): + resourceType_field: str = "Provenance" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + target_field: List[ReferenceModel] = Field(default_factory=list, alias="target", description="The Reference(s) that were generated or updated by the activity described in this resource. A provenance can point to more than one target if multiple resources were created/updated by the same activity.") + occurredPeriod_field: PeriodModel = Field(default=None, alias="occurredPeriod", description="The period during which the activity occurred.") + recorded_field: instantModel = Field(default=None, alias="recorded", description="The instant of time at which the activity was recorded.") + policy_field: List[uriModel] = Field(default_factory=list, alias="policy", description="Policy or plan the activity was defined by. Typically, a single activity may have multiple applicable policy documents, such as patient consent, guarantor funding, etc.") + location_field: ReferenceModel = Field(default=None, alias="location", description="Where the activity occurred, if relevant.") + authorization_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="authorization", description="The authorization (e.g., PurposeOfUse) that was used during the event being recorded.") + activity_field: CodeableConceptModel = Field(default=None, alias="activity", description="An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).") + agent_field: List[Provenance_AgentModel] = Field(default_factory=list, alias="agent", description="An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.") + entity_field: List[Provenance_EntityModel] = Field(default_factory=list, alias="entity", description="An entity used in this activity.") + signature_field: List[SignatureModel] = Field(default_factory=list, alias="signature", description="A digital signature on the target Reference(s). The signer should match a Provenance.agent. The purpose of the signature is indicated.") + +class Provenance_AgentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The Functional Role of the agent with respect to the activity.") + role_field: List[CodeableConceptModel] = Field(default_factory=list, alias="role", description="The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.") + who_field: ReferenceModel = Field(default=None, alias="who", description="Indicates who or what performed in the event.") + onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="The agent that delegated authority to perform the activity performed by the agent.who element.") + +class Provenance_EntityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: codeModel = Field(default=None, alias="role", description="How the entity was used during the activity.") + what_field: ReferenceModel = Field(default=None, alias="what", description="Identity of the Entity used. May be a logical or physical uri and maybe absolute or relative.") + agent_field: List[Provenance_AgentModel] = Field(default_factory=list, alias="agent", description="The entity is attributed to an agent to express the agent's responsibility for that entity, possibly along with other agents. This description can be understood as shorthand for saying that the agent was responsible for the activity which used the entity.") + +class QuestionnaireModel(BaseModel): + resourceType_field: str = "Questionnaire" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the questionnaire.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of this questionnaire.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the questionnaire from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the questionnaire is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this questionnaire is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the questionnaire content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="The URL of a Questionnaire that this Questionnaire is based on.") + subjectType_field: List[codeModel] = Field(default_factory=list, alias="subjectType", description="The types of subjects that can be the subject of responses created for the questionnaire.") + code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="An identifier for this collection of questions in a particular terminology such as LOINC.") + item_field: List[Questionnaire_ItemModel] = Field(default_factory=list, alias="item", description="A particular question, question grouping or display text that is part of the questionnaire.") + +class Questionnaire_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.") + definition_field: uriModel = Field(default=None, alias="definition", description="This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.") + code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).") + prefix_field: stringModel = Field(default=None, alias="prefix", description="A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.") + text_field: stringModel = Field(default=None, alias="text", description="The name of a section, the text of a question or text content for a display item.") + type_field: codeModel = Field(default=None, alias="type", description="The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).") + enableWhen_field: List[Questionnaire_EnableWhenModel] = Field(default_factory=list, alias="enableWhen", description="A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.") + enableBehavior_field: codeModel = Field(default=None, alias="enableBehavior", description="Controls how multiple enableWhen values are interpreted - whether all or any must be true.") + disabledDisplay_field: codeModel = Field(default=None, alias="disabledDisplay", description="Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.") + required_field: booleanModel = Field(default=None, alias="required", description="An indication, if true, that the item must be present in a completed QuestionnaireResponse. If false, the item may be skipped when answering the questionnaire.") + repeats_field: booleanModel = Field(default=None, alias="repeats", description="An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).") + readOnly_field: booleanModel = Field(default=None, alias="readOnly", description="An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.") + maxLength_field: integerModel = Field(default=None, alias="maxLength", description="The maximum number of characters that are permitted in the answer to be considered a valid QuestionnaireResponse.") + answerConstraint_field: codeModel = Field(default=None, alias="answerConstraint", description="For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.") + answerValueSet_field: canonicalModel = Field(default=None, alias="answerValueSet", description="A reference to a value set containing a list of values representing permitted answers for a question.") + answerOption_field: List[Questionnaire_AnswerOptionModel] = Field(default_factory=list, alias="answerOption", description="One of the permitted answers for the question.") + initial_field: List[Questionnaire_InitialModel] = Field(default_factory=list, alias="initial", description="One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input.") + item_field: List[Questionnaire_ItemModel] = Field(default_factory=list, alias="item", description="Text, questions and other groups to be nested beneath a question or group.") + +class Questionnaire_EnableWhenModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + question_field: stringModel = Field(default=None, alias="question", description="The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.") + operator_field: codeModel = Field(default=None, alias="operator", description="Specifies the criteria by which the question is enabled.") + answerCoding_field: CodingModel = Field(default=None, alias="answerCoding", description="A value that the referenced question is tested using the specified operator in order for the item to be enabled. If there are multiple answers, a match on any of the answers suffices. If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.") + answerQuantity_field: QuantityModel = Field(default=None, alias="answerQuantity", description="A value that the referenced question is tested using the specified operator in order for the item to be enabled. If there are multiple answers, a match on any of the answers suffices. If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.") + answerReference_field: ReferenceModel = Field(default=None, alias="answerReference", description="A value that the referenced question is tested using the specified operator in order for the item to be enabled. If there are multiple answers, a match on any of the answers suffices. If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.") + +class Questionnaire_AnswerOptionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="A potential answer that's allowed as the answer to this question.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A potential answer that's allowed as the answer to this question.") + initialSelected_field: booleanModel = Field(default=None, alias="initialSelected", description="Indicates whether the answer value is selected when the list of possible answers is initially shown.") + +class Questionnaire_InitialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The actual value to for an initial answer.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The actual value to for an initial answer.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The actual value to for an initial answer.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The actual value to for an initial answer.") + +class QuestionnaireResponseModel(BaseModel): + resourceType_field: str = "QuestionnaireResponse" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this questionnaire response by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this questionnaire response. For example, a ServiceRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.") + questionnaire_field: canonicalModel = Field(default=None, alias="questionnaire", description="The Questionnaire that defines and organizes the questions for which answers are being provided.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the questionnaire response.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this questionnaire response was created or to which the creation of this record is tightly associated.") + authored_field: dateTimeModel = Field(default=None, alias="authored", description="The date and/or time that this questionnaire response was last modified by the user - e.g. changing answers or revising status.") + author_field: ReferenceModel = Field(default=None, alias="author", description="The individual or device that received the answers to the questions in the QuestionnaireResponse and recorded them in the system.") + source_field: ReferenceModel = Field(default=None, alias="source", description="The individual or device that answered the questions about the subject.") + item_field: List[QuestionnaireResponse_ItemModel] = Field(default_factory=list, alias="item", description="A group or question item from the original questionnaire for which answers are provided.") + +class QuestionnaireResponse_ItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource.") + definition_field: uriModel = Field(default=None, alias="definition", description="A reference to an [ElementDefinition](elementdefinition.html) that provides the details for the item.") + text_field: stringModel = Field(default=None, alias="text", description="Text that is displayed above the contents of the group or as the text of the question being answered.") + answer_field: List[QuestionnaireResponse_AnswerModel] = Field(default_factory=list, alias="answer", description="The respondent's answer(s) to the question.") + item_field: List[QuestionnaireResponse_ItemModel] = Field(default_factory=list, alias="item", description="Sub-questions, sub-groups or display items nested beneath a group.") + +class QuestionnaireResponse_AnswerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The answer (or one of the answers) provided by the respondent to the question.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The answer (or one of the answers) provided by the respondent to the question.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The answer (or one of the answers) provided by the respondent to the question.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The answer (or one of the answers) provided by the respondent to the question.") + item_field: List[QuestionnaireResponse_ItemModel] = Field(default_factory=list, alias="item", description="Nested groups and/or questions found within this particular answer.") + +class RegulatedAuthorizationModel(BaseModel): + resourceType_field: str = "RegulatedAuthorization" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for the authorization, typically assigned by the authorizing body.") + subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The product type, treatment, facility or activity that is being authorized.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Overall type of this authorization, for example drug marketing approval, orphan drug designation.") + description_field: markdownModel = Field(default=None, alias="description", description="General textual supporting information.") + region_field: List[CodeableConceptModel] = Field(default_factory=list, alias="region", description="The territory (e.g., country, jurisdiction etc.) in which the authorization has been granted.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status that is authorised e.g. approved. Intermediate states and actions can be tracked with cases and applications.") + statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the current status was assigned.") + validityPeriod_field: PeriodModel = Field(default=None, alias="validityPeriod", description="The time period in which the regulatory approval, clearance or licencing is in effect. As an example, a Marketing Authorization includes the date of authorization and/or an expiration date.") + indication_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="indication", description="Condition for which the use of the regulated product applies.") + intendedUse_field: CodeableConceptModel = Field(default=None, alias="intendedUse", description="The intended use of the product, e.g. prevention, treatment, diagnosis.") + basis_field: List[CodeableConceptModel] = Field(default_factory=list, alias="basis", description="The legal or regulatory framework against which this authorization is granted, or other reasons for it.") + holder_field: ReferenceModel = Field(default=None, alias="holder", description="The organization that has been granted this authorization, by some authoritative body (the 'regulator').") + regulator_field: ReferenceModel = Field(default=None, alias="regulator", description="The regulatory authority or authorizing body granting the authorization. For example, European Medicines Agency (EMA), Food and Drug Administration (FDA), Health Canada (HC), etc.") + attachedDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="attachedDocument", description="Additional information or supporting documentation about the authorization.") + case_field: RegulatedAuthorization_CaseModel = Field(default=None, alias="case", description="The case or regulatory procedure for granting or amending a regulated authorization. An authorization is granted in response to submissions/applications by those seeking authorization. A case is the administrative process that deals with the application(s) that relate to this and assesses them. Note: This area is subject to ongoing review and the workgroup is seeking implementer feedback on its use (see link at bottom of page).") + +class RegulatedAuthorization_CaseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifier by which this case can be referenced.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The defining type of case.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status associated with the case.") + datePeriod_field: PeriodModel = Field(default=None, alias="datePeriod", description="Relevant date for this case.") + application_field: List[RegulatedAuthorization_CaseModel] = Field(default_factory=list, alias="application", description="A regulatory submission from an organization to a regulator, as part of an assessing case. Multiple applications may occur over time, with more or different information to support or modify the submission or the authorization. The applications can be considered as steps within the longer running case or procedure for this authorization process.") + +class RelatedPersonModel(BaseModel): + resourceType_field: str = "RelatedPerson" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for a person within a particular scope.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this related person record is in active use.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient this person is related to.") + relationship_field: List[CodeableConceptModel] = Field(default_factory=list, alias="relationship", description="The nature of the relationship between the related person and the patient.") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the person.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.") + birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date on which the related person was born.") + address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="Address where the related person can be contacted or visited.") + photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the person.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.") + communication_field: List[RelatedPerson_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the related person about the patient's health.") + +class RelatedPerson_CommunicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).") + +class RequestOrchestrationModel(BaseModel): + resourceType_field: str = "RequestOrchestration" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Allows a service to provide a unique, business identifier for the request.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="A canonical URL referencing a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this request.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="A URL referencing an externally defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this request.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this request.") + replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Completed or terminated request(s) whose function is taken by this new request.") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the request. For request orchestrations, the status reflects the status of all the requests in the orchestration.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the request and where the request fits into the workflow chain.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the request should be addressed with respect to other requests.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies what the overall request orchestration is.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject for which the request orchestration was created.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="Describes the context of the request orchestration, if any.") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="Indicates when the request orchestration was created.") + author_field: ReferenceModel = Field(default=None, alias="author", description="Provides a reference to the author of the request orchestration.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes the reason for the request orchestration in coded or textual form.") + goal_field: List[ReferenceModel] = Field(default_factory=list, alias="goal", description="Goals that are intended to be achieved by following the requests in this RequestOrchestration.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides a mechanism to communicate additional information about the response.") + action_field: List[RequestOrchestration_ActionModel] = Field(default_factory=list, alias="action", description="The actions, if any, produced by the evaluation of the artifact.") + +class RequestOrchestration_ActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: stringModel = Field(default=None, alias="linkId", description="The linkId of the action from the PlanDefinition that corresponds to this action in the RequestOrchestration resource.") + prefix_field: stringModel = Field(default=None, alias="prefix", description="A user-visible prefix for the action. For example a section or item numbering such as 1. or A.") + title_field: stringModel = Field(default=None, alias="title", description="The title of the action displayed to a user.") + description_field: markdownModel = Field(default=None, alias="description", description="A short description of the action used to provide a summary to display to the user.") + textEquivalent_field: markdownModel = Field(default=None, alias="textEquivalent", description="A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamically.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the action should be addressed with respect to other actions.") + code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="A code that provides meaning for the action or action group. For example, a section may have a LOINC code for a section of a documentation template.") + documentation_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="documentation", description="Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resources.") + goal_field: List[ReferenceModel] = Field(default_factory=list, alias="goal", description="Goals that are intended to be achieved by following the requests in this action.") + condition_field: List[RequestOrchestration_ConditionModel] = Field(default_factory=list, alias="condition", description="An expression that describes applicability criteria, or start/stop conditions for the action.") + input_field: List[RequestOrchestration_InputModel] = Field(default_factory=list, alias="input", description="Defines input data requirements for the action.") + output_field: List[RequestOrchestration_OutputModel] = Field(default_factory=list, alias="output", description="Defines the outputs of the action, if any.") + relatedAction_field: List[RequestOrchestration_RelatedActionModel] = Field(default_factory=list, alias="relatedAction", description="A relationship to another action such as before or 30-60 minutes after start of.") + timingAge_field: AgeModel = Field(default=None, alias="timingAge", description="An optional value describing when the action should be performed.") + timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="An optional value describing when the action should be performed.") + timingDuration_field: DurationModel = Field(default=None, alias="timingDuration", description="An optional value describing when the action should be performed.") + timingRange_field: RangeModel = Field(default=None, alias="timingRange", description="An optional value describing when the action should be performed.") + timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="An optional value describing when the action should be performed.") + location_field: CodeableReferenceModel = Field(default=None, alias="location", description="Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc.") + participant_field: List[RequestOrchestration_ParticipantModel] = Field(default_factory=list, alias="participant", description="The participant that should perform or be responsible for this action.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of action to perform (create, update, remove).") + groupingBehavior_field: codeModel = Field(default=None, alias="groupingBehavior", description="Defines the grouping behavior for the action and its children.") + selectionBehavior_field: codeModel = Field(default=None, alias="selectionBehavior", description="Defines the selection behavior for the action and its children.") + requiredBehavior_field: codeModel = Field(default=None, alias="requiredBehavior", description="Defines expectations around whether an action is required.") + precheckBehavior_field: codeModel = Field(default=None, alias="precheckBehavior", description="Defines whether the action should usually be preselected.") + cardinalityBehavior_field: codeModel = Field(default=None, alias="cardinalityBehavior", description="Defines whether the action can be selected multiple times.") + resource_field: ReferenceModel = Field(default=None, alias="resource", description="The resource that is the target of the action (e.g. CommunicationRequest).") + transform_field: canonicalModel = Field(default=None, alias="transform", description="A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.") + dynamicValue_field: List[RequestOrchestration_DynamicValueModel] = Field(default_factory=list, alias="dynamicValue", description="Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the result.") + action_field: List[RequestOrchestration_ActionModel] = Field(default_factory=list, alias="action", description="Sub actions.") + +class RequestOrchestration_ConditionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + kind_field: codeModel = Field(default=None, alias="kind", description="The kind of condition.") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression that returns true or false, indicating whether or not the condition is satisfied.") + +class RequestOrchestration_InputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") + requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that is to be provided as input to the action.") + relatedData_field: idModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that provides data to this input.") + +class RequestOrchestration_OutputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") + requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that results as output from the action.") + relatedData_field: stringModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that is results as output from the action.") + +class RequestOrchestration_RelatedActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + targetId_field: idModel = Field(default=None, alias="targetId", description="The element id of the target related action.") + relationship_field: codeModel = Field(default=None, alias="relationship", description="The relationship of this action to the related action.") + endRelationship_field: codeModel = Field(default=None, alias="endRelationship", description="The relationship of the end of this action to the related action.") + offsetDuration_field: DurationModel = Field(default=None, alias="offsetDuration", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") + offsetRange_field: RangeModel = Field(default=None, alias="offsetRange", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") + +class RequestOrchestration_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") + typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") + typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="Indicates how the actor will be involved in the action - author, reviewer, witness, etc.") + actorReference_field: ReferenceModel = Field(default=None, alias="actorReference", description="A reference to the actual participant.") + +class RequestOrchestration_DynamicValueModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + path_field: stringModel = Field(default=None, alias="path", description="The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).") + expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression specifying the value of the customized element.") + +class RequirementsModel(BaseModel): + resourceType_field: str = "Requirements" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this Requirements when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Requirements is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Requirements is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this Requirements when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the Requirements when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the Requirements author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the Requirements. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the Requirements.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this Requirements. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this Requirements is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the Requirements was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the Requirements changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the Requirements.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the requirements.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Requirements instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the Requirements is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this Requirements is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the Requirements and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the Requirements.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="Another set of Requirements that this set of Requirements builds on and updates.") + reference_field: List[urlModel] = Field(default_factory=list, alias="reference", description="A reference to another artifact that created this set of requirements. This could be a Profile, etc., or external regulation, or business requirements expressed elsewhere.") + actor_field: List[canonicalModel] = Field(default_factory=list, alias="actor", description="An actor these requirements are in regard to.") + statement_field: List[Requirements_StatementModel] = Field(default_factory=list, alias="statement", description="The actual statement of requirement, in markdown format.") + +class Requirements_StatementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + key_field: idModel = Field(default=None, alias="key", description="Key that identifies this statement (unique within this resource).") + label_field: stringModel = Field(default=None, alias="label", description="A short human usable label for this statement.") + conformance_field: List[codeModel] = Field(default_factory=list, alias="conformance", description="A short human usable label for this statement.") + conditionality_field: booleanModel = Field(default=None, alias="conditionality", description="This boolean flag is set to true of the text of the requirement is conditional on something e.g. it includes lanauage like 'if x then y'. This conditionality flag is introduced for purposes of filtering and colour highlighting etc.") + requirement_field: markdownModel = Field(default=None, alias="requirement", description="The actual requirement for human consumption.") + derivedFrom_field: stringModel = Field(default=None, alias="derivedFrom", description="Another statement on one of the requirements that this requirement clarifies or restricts.") + parent_field: stringModel = Field(default=None, alias="parent", description="A larger requirement that this requirement helps to refine and enable.") + satisfiedBy_field: List[urlModel] = Field(default_factory=list, alias="satisfiedBy", description="A reference to another artifact that satisfies this requirement. This could be a Profile, extension, or an element in one of those, or a CapabilityStatement, OperationDefinition, SearchParameter, CodeSystem(/code), ValueSet, Libary etc.") + reference_field: List[urlModel] = Field(default_factory=list, alias="reference", description="A reference to another artifact that created this requirement. This could be a Profile, etc., or external regulation, or business requirements expressed elsewhere.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Who asked for this statement to be a requirement. By default, it's assumed that the publisher knows who it is if it matters.") + +class ResearchStudyModel(BaseModel): + resourceType_field: str = "ResearchStudy" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="Canonical identifier for this study resource, represented as a globally unique URI.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this research study by the sponsor or other systems.") + version_field: stringModel = Field(default=None, alias="version", description="The business version for the study record.") + name_field: stringModel = Field(default=None, alias="name", description="Name for this study (computer friendly).") + title_field: stringModel = Field(default=None, alias="title", description="The human readable name of the research study.") + label_field: List[ResearchStudy_LabelModel] = Field(default_factory=list, alias="label", description="Additional names for the study.") + protocol_field: List[ReferenceModel] = Field(default_factory=list, alias="protocol", description="The set of steps expected to be performed as part of the execution of the study.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger research study of which this particular study is a component or step.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Citations, references, URLs and other related documents. When using relatedArtifact to share URLs, the relatedArtifact.type will often be set to one of documentation or supported-with and the URL value will often be in relatedArtifact.document.url but another possible location is relatedArtifact.resource when it is a canonical URL.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the ResearchStudy Resource was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes.") + status_field: codeModel = Field(default=None, alias="status", description="The publication state of the resource (not of the study).") + primaryPurposeType_field: CodeableConceptModel = Field(default=None, alias="primaryPurposeType", description="The type of study based upon the intent of the study activities. A classification of the intent of the study.") + phase_field: CodeableConceptModel = Field(default=None, alias="phase", description="The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.") + studyDesign_field: List[CodeableConceptModel] = Field(default_factory=list, alias="studyDesign", description="Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc.") + focus_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="focus", description="The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.") + condition_field: List[CodeableConceptModel] = Field(default_factory=list, alias="condition", description="The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion healthy volunteer, but the target condition code would be a Lupus SNOMED code.") + keyword_field: List[CodeableConceptModel] = Field(default_factory=list, alias="keyword", description="Key terms to aid in searching for or filtering the study.") + region_field: List[CodeableConceptModel] = Field(default_factory=list, alias="region", description="A country, state or other area where the study is taking place rather than its precise geographic location or address.") + descriptionSummary_field: markdownModel = Field(default=None, alias="descriptionSummary", description="A brief text for explaining the study.") + description_field: markdownModel = Field(default=None, alias="description", description="A detailed and human-readable narrative of the study. E.g., study abstract.") + period_field: PeriodModel = Field(default=None, alias="period", description="Identifies the start date and the expected (or actual, depending on status) end date for the study.") + site_field: List[ReferenceModel] = Field(default_factory=list, alias="site", description="A facility in which study activities are conducted.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the study by the performer, subject or other participants.") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource.") + associatedParty_field: List[ResearchStudy_AssociatedPartyModel] = Field(default_factory=list, alias="associatedParty", description="Sponsors, collaborators, and other parties.") + progressStatus_field: List[ResearchStudy_ProgressStatusModel] = Field(default_factory=list, alias="progressStatus", description="Status of study with time for that status.") + whyStopped_field: CodeableConceptModel = Field(default=None, alias="whyStopped", description="A description and/or code explaining the premature termination of the study.") + recruitment_field: ResearchStudy_RecruitmentModel = Field(default=None, alias="recruitment", description="Target or actual group of participants enrolled in study.") + comparisonGroup_field: List[ResearchStudy_ComparisonGroupModel] = Field(default_factory=list, alias="comparisonGroup", description="Describes an expected event or sequence of events for one of the subjects of a study. E.g. for a living subject: exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up. E.g. for a stability study: {store sample from lot A at 25 degrees for 1 month}, {store sample from lot A at 40 degrees for 1 month}.") + objective_field: List[ResearchStudy_ObjectiveModel] = Field(default_factory=list, alias="objective", description="A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.") + outcomeMeasure_field: List[ResearchStudy_OutcomeMeasureModel] = Field(default_factory=list, alias="outcomeMeasure", description="An outcome measure, endpoint, effect measure or measure of effect is a specific measurement or observation used to quantify the effect of experimental variables on the participants in a study, or for observational studies, to describe patterns of diseases or traits or associations with exposures, risk factors or treatment.") + result_field: List[ReferenceModel] = Field(default_factory=list, alias="result", description="Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov.") + +class ResearchStudy_LabelModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Kind of name.") + value_field: stringModel = Field(default=None, alias="value", description="The name.") + +class ResearchStudy_AssociatedPartyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Name of associated party.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Type of association.") + period_field: List[PeriodModel] = Field(default_factory=list, alias="period", description="Identifies the start date and the end date of the associated party in the role.") + classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="A categorization other than role for the associated party.") + party_field: ReferenceModel = Field(default=None, alias="party", description="Individual or organization associated with study (use practitionerRole to specify their organisation).") + +class ResearchStudy_ProgressStatusModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + state_field: CodeableConceptModel = Field(default=None, alias="state", description="Label for status or state (e.g. recruitment status).") + actual_field: booleanModel = Field(default=None, alias="actual", description="An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date.") + period_field: PeriodModel = Field(default=None, alias="period", description="Date range.") + +class ResearchStudy_RecruitmentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + targetNumber_field: unsignedIntModel = Field(default=None, alias="targetNumber", description="Estimated total number of participants to be enrolled.") + actualNumber_field: unsignedIntModel = Field(default=None, alias="actualNumber", description="Actual total number of participants enrolled in study.") + eligibility_field: ReferenceModel = Field(default=None, alias="eligibility", description="Inclusion and exclusion criteria.") + actualGroup_field: ReferenceModel = Field(default=None, alias="actualGroup", description="Group of participants who were enrolled in study.") + +class ResearchStudy_ComparisonGroupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + linkId_field: idModel = Field(default=None, alias="linkId", description="Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.") + name_field: stringModel = Field(default=None, alias="name", description="Unique, human-readable label for this comparisonGroup of the study.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater.") + description_field: markdownModel = Field(default=None, alias="description", description="A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup.") + intendedExposure_field: List[ReferenceModel] = Field(default_factory=list, alias="intendedExposure", description="Interventions or exposures in this comparisonGroup or cohort.") + observedGroup_field: ReferenceModel = Field(default=None, alias="observedGroup", description="Group of participants who were enrolled in study comparisonGroup.") + +class ResearchStudy_ObjectiveModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Unique, human-readable label for this objective of the study.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of study objective.") + description_field: markdownModel = Field(default=None, alias="description", description="Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description).") + +class ResearchStudy_OutcomeMeasureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Label for the outcome.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The parameter or characteristic being assessed as one of the values by which the study is assessed.") + description_field: markdownModel = Field(default=None, alias="description", description="Description of the outcome.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="Structured outcome definition.") + +class ResearchSubjectModel(BaseModel): + resourceType_field: str = "ResearchSubject" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this research subject for a study.") + status_field: codeModel = Field(default=None, alias="status", description="The publication state of the resource (not of the subject).") + progress_field: List[ResearchSubject_ProgressModel] = Field(default_factory=list, alias="progress", description="The current state (status) of the subject and resons for status change where appropriate.") + period_field: PeriodModel = Field(default=None, alias="period", description="The dates the subject began and ended their participation in the study.") + study_field: ReferenceModel = Field(default=None, alias="study", description="Reference to the study the subject is participating in.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The record of the person, animal or other entity involved in the study.") + assignedComparisonGroup_field: idModel = Field(default=None, alias="assignedComparisonGroup", description="The name of the arm in the study the subject is expected to follow as part of this study.") + actualComparisonGroup_field: idModel = Field(default=None, alias="actualComparisonGroup", description="The name of the arm in the study the subject actually followed as part of this study.") + consent_field: List[ReferenceModel] = Field(default_factory=list, alias="consent", description="A record of the patient's informed agreement to participate in the study.") + +class ResearchSubject_ProgressModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifies the aspect of the subject's journey that the state refers to.") + subjectState_field: CodeableConceptModel = Field(default=None, alias="subjectState", description="The current state of the subject.") + milestone_field: CodeableConceptModel = Field(default=None, alias="milestone", description="The milestones the subject has passed through.") + reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="The reason for the state change. If coded it should follow the formal subject state model.") + startDate_field: dateTimeModel = Field(default=None, alias="startDate", description="The date when the new status started.") + endDate_field: dateTimeModel = Field(default=None, alias="endDate", description="The date when the state ended.") + +class RiskAssessmentModel(BaseModel): + resourceType_field: str = "RiskAssessment" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier assigned to the risk assessment.") + basedOn_field: ReferenceModel = Field(default=None, alias="basedOn", description="A reference to the request that is fulfilled by this risk assessment.") + parent_field: ReferenceModel = Field(default=None, alias="parent", description="A reference to a resource that this risk assessment is part of, such as a Procedure.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the RiskAssessment, using the same statuses as an Observation.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="The algorithm, process or mechanism used to evaluate the risk.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of the risk assessment performed.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group the risk assessment applies to.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter where the assessment was performed.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date (and possibly time) the risk assessment was performed.") + condition_field: ReferenceModel = Field(default=None, alias="condition", description="For assessments or prognosis specific to a particular condition, indicates the condition being assessed.") + performer_field: ReferenceModel = Field(default=None, alias="performer", description="The provider, patient, related person, or software application that performed the assessment.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason the risk assessment was performed.") + basis_field: List[ReferenceModel] = Field(default_factory=list, alias="basis", description="Indicates the source data considered as part of the assessment (for example, FamilyHistory, Observations, Procedures, Conditions, etc.).") + prediction_field: List[RiskAssessment_PredictionModel] = Field(default_factory=list, alias="prediction", description="Describes the expected outcome for the subject.") + mitigation_field: stringModel = Field(default=None, alias="mitigation", description="A description of the steps that might be taken to reduce the identified risk(s).") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional comments about the risk assessment.") + +class RiskAssessment_PredictionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="One of the potential outcomes for the patient (e.g. remission, death, a particular condition).") + probabilityRange_field: RangeModel = Field(default=None, alias="probabilityRange", description="Indicates how likely the outcome is (in the specified timeframe).") + qualitativeRisk_field: CodeableConceptModel = Field(default=None, alias="qualitativeRisk", description="Indicates how likely the outcome is (in the specified timeframe), expressed as a qualitative value (e.g. low, medium, or high).") + relativeRisk_field: decimalModel = Field(default=None, alias="relativeRisk", description="Indicates the risk for this particular subject (with their specific characteristics) divided by the risk of the population in general. (Numbers greater than 1 = higher risk than the population, numbers less than 1 = lower risk.).") + whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="Indicates the period of time or age range of the subject to which the specified probability applies.") + whenRange_field: RangeModel = Field(default=None, alias="whenRange", description="Indicates the period of time or age range of the subject to which the specified probability applies.") + rationale_field: stringModel = Field(default=None, alias="rationale", description="Additional information explaining the basis for the prediction.") + +class ScheduleModel(BaseModel): + resourceType_field: str = "Schedule" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="External Ids for this item.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this schedule record is in active use or should not be used (such as was entered in error).") + serviceCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceCategory", description="A broad categorization of the service that is to be performed during this appointment.") + serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="The specific service that is to be performed during this appointment.") + specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment.") + name_field: stringModel = Field(default=None, alias="name", description="Further description of the schedule as it would be presented to a consumer while searching.") + actor_field: List[ReferenceModel] = Field(default_factory=list, alias="actor", description="Slots that reference this schedule resource provide the availability details to these referenced resource(s).") + planningHorizon_field: PeriodModel = Field(default=None, alias="planningHorizon", description="The period of time that the slots that reference this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a template for planning outside these dates.") + comment_field: markdownModel = Field(default=None, alias="comment", description="Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated.") + +class SearchParameterModel(BaseModel): + resourceType_field: str = "SearchParameter" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this search parameter when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the search parameter.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this search parameter. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the search parameter was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual tresponsible for the release and ongoing maintenance of the search parameter.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="And how it used.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the search parameter is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this search parameter is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the search parameter and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the search parameter.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + derivedFrom_field: canonicalModel = Field(default=None, alias="derivedFrom", description="Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.") + code_field: codeModel = Field(default=None, alias="code", description="The label that is recommended to be used in the URL or the parameter name in a parameters resource for this search parameter. In some cases, servers may need to use a different CapabilityStatement searchParam.name to differentiate between multiple SearchParameters that happen to have the same code.") + base_field: List[codeModel] = Field(default_factory=list, alias="base", description="The base resource type(s) that this search parameter can be used against.") + type_field: codeModel = Field(default=None, alias="type", description="The type of value that a search parameter may contain, and how the content is interpreted.") + expression_field: stringModel = Field(default=None, alias="expression", description="A FHIRPath expression that returns a set of elements for the search parameter.") + processingMode_field: codeModel = Field(default=None, alias="processingMode", description="How the search parameter relates to the set of elements returned by evaluating the expression query.") + constraint_field: stringModel = Field(default=None, alias="constraint", description="FHIRPath expression that defines/sets a complex constraint for when this SearchParameter is applicable.") + target_field: List[codeModel] = Field(default_factory=list, alias="target", description="Types of resource (if a resource is referenced).") + multipleOr_field: booleanModel = Field(default=None, alias="multipleOr", description="Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.") + multipleAnd_field: booleanModel = Field(default=None, alias="multipleAnd", description="Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.") + comparator_field: List[codeModel] = Field(default_factory=list, alias="comparator", description="Comparators supported for the search parameter.") + modifier_field: List[codeModel] = Field(default_factory=list, alias="modifier", description="A modifier supported for the search parameter.") + chain_field: List[stringModel] = Field(default_factory=list, alias="chain", description="Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.") + component_field: List[SearchParameter_ComponentModel] = Field(default_factory=list, alias="component", description="Used to define the parts of a composite search parameter.") + +class SearchParameter_ComponentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + definition_field: canonicalModel = Field(default=None, alias="definition", description="The definition of the search parameter that describes this part.") + expression_field: stringModel = Field(default=None, alias="expression", description="A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.") + +class ServiceRequestModel(BaseModel): + resourceType_field: str = "ServiceRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.") + instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.") + instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Plan/proposal/order fulfilled by this request.") + replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="The request takes the place of the referenced completed or terminated request(s).") + requisition_field: IdentifierModel = Field(default=None, alias="requisition", description="A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the order.") + intent_field: codeModel = Field(default=None, alias="intent", description="Whether the request is a proposal, plan, an original order or a reflex order.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the service for searching, sorting and display purposes (e.g. Surgical Procedure).") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the ServiceRequest should be addressed with respect to other requests.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="Set this to true if the record is saying that the service/procedure should NOT be performed.") + code_field: CodeableReferenceModel = Field(default=None, alias="code", description="A code or reference that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.") + orderDetail_field: List[ServiceRequest_OrderDetailModel] = Field(default_factory=list, alias="orderDetail", description="Additional details and instructions about the how the services are to be delivered. For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.") + quantityQuantity_field: QuantityModel = Field(default=None, alias="quantityQuantity", description="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).") + quantityRatio_field: RatioModel = Field(default=None, alias="quantityRatio", description="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).") + quantityRange_field: RangeModel = Field(default=None, alias="quantityRange", description="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).") + focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of a service request when it is not the subject of record representing something or someone associated with the subject such as a spouse, parent, fetus, or donor. The focus of a service request could also be an existing condition, an intervention, the subject's diet, another service request on the subject, or a body structure such as tumor or implanted device.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="An encounter that provides additional information about the healthcare context in which this request is made.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date/time at which the requested service should occur.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The date/time at which the requested service should occur.") + asNeededCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="asNeededCodeableConcept", description="If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example pain, on flare-up, etc.") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="When the request transitioned to being actionable.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The individual who initiated the request and has responsibility for its activation.") + performerType_field: CodeableConceptModel = Field(default=None, alias="performerType", description="Desired type of performer for doing the requested service.") + performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="The desired performer for doing the requested service. For example, the surgeon, dermatopathologist, endoscopist, etc.") + location_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="location", description="The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="An explanation or justification for why this service is being requested in coded or textual form. This is often for billing purposes. May relate to the resources referred to in `supportingInfo`.") + insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.") + supportingInfo_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Additional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations. In laboratory ordering these are typically referred to as ask at order entry questions (AOEs). This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example, reporting the amount of inspired oxygen for blood gas measurements.") + specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="One or more specimens that the laboratory procedure will use.") + bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="Anatomic location where the procedure should be performed. This is the target site.") + bodyStructure_field: ReferenceModel = Field(default=None, alias="bodyStructure", description="Anatomic location where the procedure should be performed. This is the target site.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any other notes and comments made about the service request. For example, internal billing notes.") + patientInstruction_field: List[ServiceRequest_PatientInstructionModel] = Field(default_factory=list, alias="patientInstruction", description="Instructions in terms that are understood by the patient or consumer.") + relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Key events in the history of the request.") + +class ServiceRequest_OrderDetailModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + parameterFocus_field: CodeableReferenceModel = Field(default=None, alias="parameterFocus", description="Indicates the context of the order details by reference.") + parameter_field: List[ServiceRequest_ParameterModel] = Field(default_factory=list, alias="parameter", description="The parameter details for the service being requested.") + +class ServiceRequest_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A value representing the additional detail or instructions for the order (e.g., catheter insertion, body elevation, descriptive device configuration and/or setting instructions).") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Indicates a value for the order detail.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Indicates a value for the order detail.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Indicates a value for the order detail.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Indicates a value for the order detail.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Indicates a value for the order detail.") + +class ServiceRequest_PatientInstructionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + instructionReference_field: ReferenceModel = Field(default=None, alias="instructionReference", description="Instructions in terms that are understood by the patient or consumer.") + +class SlotModel(BaseModel): + resourceType_field: str = "Slot" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="External Ids for this item.") + serviceCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceCategory", description="A broad categorization of the service that is to be performed during this appointment.") + serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the Schedule resource.") + specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment.") + appointmentType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="appointmentType", description="The style of appointment or patient that may be booked in the slot (not service type).") + schedule_field: ReferenceModel = Field(default=None, alias="schedule", description="The schedule resource that this slot defines an interval of status information.") + status_field: codeModel = Field(default=None, alias="status", description="busy | free | busy-unavailable | busy-tentative | entered-in-error.") + start_field: instantModel = Field(default=None, alias="start", description="Date/Time that the slot is to begin.") + end_field: instantModel = Field(default=None, alias="end", description="Date/Time that the slot is to conclude.") + overbooked_field: booleanModel = Field(default=None, alias="overbooked", description="This slot has already been overbooked, appointments are unlikely to be accepted for this time.") + comment_field: stringModel = Field(default=None, alias="comment", description="Comments on the slot to describe any extended information. Such as custom constraints on the slot.") + +class SpecimenModel(BaseModel): + resourceType_field: str = "Specimen" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Id for specimen.") + accessionIdentifier_field: IdentifierModel = Field(default=None, alias="accessionIdentifier", description="The identifier assigned by the lab when accessioning specimen(s). This is not necessarily the same as the specimen identifier, depending on local lab procedures.") + status_field: codeModel = Field(default=None, alias="status", description="The availability of the specimen.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of material that forms the specimen.") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance, a biologically-derived product, or a device.") + receivedTime_field: dateTimeModel = Field(default=None, alias="receivedTime", description="Time when specimen is received by the testing laboratory for processing or testing.") + parent_field: List[ReferenceModel] = Field(default_factory=list, alias="parent", description="Reference to the parent (source) specimen which is used when the specimen was either derived from or a component of another specimen.") + request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Details concerning a service request that required a specimen to be collected.") + combined_field: codeModel = Field(default=None, alias="combined", description="This element signifies if the specimen is part of a group or pooled.") + role_field: List[CodeableConceptModel] = Field(default_factory=list, alias="role", description="The role or reason for the specimen in the testing workflow.") + feature_field: List[Specimen_FeatureModel] = Field(default_factory=list, alias="feature", description="A physical feature or landmark on a specimen, highlighted for context by the collector of the specimen (e.g. surgeon), that identifies the type of feature as well as its meaning (e.g. the red ink indicating the resection margin of the right lobe of the excised prostate tissue or wire loop at radiologically suspected tumor location).") + collection_field: Specimen_CollectionModel = Field(default=None, alias="collection", description="Details concerning the specimen collection.") + processing_field: List[Specimen_ProcessingModel] = Field(default_factory=list, alias="processing", description="Details concerning processing and processing steps for the specimen.") + container_field: List[Specimen_ContainerModel] = Field(default_factory=list, alias="container", description="The container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here.") + condition_field: List[CodeableConceptModel] = Field(default_factory=list, alias="condition", description="A mode or state of being that describes the nature of the specimen.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="To communicate any details or issues about the specimen or during the specimen collection. (for example: broken vial, sent with patient, frozen).") + +class Specimen_FeatureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The landmark or feature being highlighted.") + description_field: stringModel = Field(default=None, alias="description", description="Description of the feature of the specimen.") + +class Specimen_CollectionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + collector_field: ReferenceModel = Field(default=None, alias="collector", description="Person who collected the specimen.") + collectedPeriod_field: PeriodModel = Field(default=None, alias="collectedPeriod", description="Time when specimen was collected from subject - the physiologically relevant time.") + duration_field: DurationModel = Field(default=None, alias="duration", description="The span of time over which the collection of a specimen occurred.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The quantity of specimen collected; for instance the volume of a blood sample, or the physical measurement of an anatomic pathology sample.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="A coded value specifying the technique that is used to perform the procedure.") + device_field: CodeableReferenceModel = Field(default=None, alias="device", description="A coded value specifying the technique that is used to perform the procedure.") + procedure_field: ReferenceModel = Field(default=None, alias="procedure", description="The procedure event during which the specimen was collected (e.g. the surgery leading to the collection of a pathology sample).") + bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="Anatomical location from which the specimen was collected (if subject is a patient). This is the target site. This element is not used for environmental specimens.") + fastingStatusCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="fastingStatusCodeableConcept", description="Abstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection.") + fastingStatusDuration_field: DurationModel = Field(default=None, alias="fastingStatusDuration", description="Abstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection.") + +class Specimen_ProcessingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: stringModel = Field(default=None, alias="description", description="Textual description of procedure.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="A coded value specifying the method used to process the specimen.") + additive_field: List[ReferenceModel] = Field(default_factory=list, alias="additive", description="Material used in the processing step.") + timePeriod_field: PeriodModel = Field(default=None, alias="timePeriod", description="A record of the time or period when the specimen processing occurred. For example the time of sample fixation or the period of time the sample was in formalin.") + +class Specimen_ContainerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + device_field: ReferenceModel = Field(default=None, alias="device", description="The device resource for the the container holding the specimen. If the container is in a holder then the referenced device will point to a parent device.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location of the container holding the specimen.") + specimenQuantity_field: QuantityModel = Field(default=None, alias="specimenQuantity", description="The quantity of specimen in the container; may be volume, dimensions, or other appropriate measurements, depending on the specimen type.") + +class SpecimenDefinitionModel(BaseModel): + resourceType_field: str = "SpecimenDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URL that is used to identify this SpecimenDefinition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this SpecimenDefinition is (or will be) published. The URL SHOULD include the major version of the SpecimenDefinition. For more information see Technical and Business Versions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="A business identifier assigned to this SpecimenDefinition.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the SpecimenDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the SpecimenDefinition author and is not expected to be globally unique.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the {{title}}. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the SpecimenDefinition.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of theSpecimenDefinition.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A flag to indicate that this SpecimenDefinition is not authored for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="For draft definitions, indicates the date of initial creation. For active definitions, represents the date of activation. For withdrawn definitions, indicates the date of withdrawal.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="Helps establish the authority/credibility of the SpecimenDefinition. May also allow for contact.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the SpecimenDefinition from the consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of specimen definitions.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A jurisdiction in which the SpecimenDefinition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explains why this SpecimeDefinition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright statement relating to the SpecimenDefinition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the SpecimenDefinition.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the asset content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the asset content was last reviewed. Review happens periodically after that, but doesn't change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the SpecimenDefinition content was or is planned to be effective.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + derivedFromCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFromCanonical", description="The canonical URL pointing to another FHIR-defined SpecimenDefinition that is adhered to in whole or in part by this definition.") + derivedFromUri_field: List[uriModel] = Field(default_factory=list, alias="derivedFromUri", description="The URL pointing to an externally-defined type of specimen, guideline or other definition that is adhered to in whole or in part by this definition.") + subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code or group definition that describes the intended subject from which this kind of specimen is to be collected.") + subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code or group definition that describes the intended subject from which this kind of specimen is to be collected.") + typeCollected_field: CodeableConceptModel = Field(default=None, alias="typeCollected", description="The kind of material to be collected.") + patientPreparation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="patientPreparation", description="Preparation of the patient for specimen collection.") + timeAspect_field: stringModel = Field(default=None, alias="timeAspect", description="Time aspect of specimen collection (duration or offset).") + collection_field: List[CodeableConceptModel] = Field(default_factory=list, alias="collection", description="The action to be performed for collecting the specimen.") + typeTested_field: List[SpecimenDefinition_TypeTestedModel] = Field(default_factory=list, alias="typeTested", description="Specimen conditioned in a container as expected by the testing laboratory.") + +class SpecimenDefinition_TypeTestedModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + isDerived_field: booleanModel = Field(default=None, alias="isDerived", description="Primary of secondary specimen.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of specimen conditioned for testing expected by lab.") + preference_field: codeModel = Field(default=None, alias="preference", description="The preference for this type of conditioned specimen.") + container_field: SpecimenDefinition_ContainerModel = Field(default=None, alias="container", description="The specimen's container.") + requirement_field: markdownModel = Field(default=None, alias="requirement", description="Requirements for delivery and special handling of this kind of conditioned specimen.") + retentionTime_field: DurationModel = Field(default=None, alias="retentionTime", description="The usual time that a specimen of this kind is retained after the ordered tests are completed, for the purpose of additional testing.") + singleUse_field: booleanModel = Field(default=None, alias="singleUse", description="Specimen can be used by only one test or panel if the value is true.") + rejectionCriterion_field: List[CodeableConceptModel] = Field(default_factory=list, alias="rejectionCriterion", description="Criterion for rejection of the specimen in its container by the laboratory.") + handling_field: List[SpecimenDefinition_HandlingModel] = Field(default_factory=list, alias="handling", description="Set of instructions for preservation/transport of the specimen at a defined temperature interval, prior the testing process.") + testingDestination_field: List[CodeableConceptModel] = Field(default_factory=list, alias="testingDestination", description="Where the specimen will be tested: e.g., lab, sector, device or any combination of these.") + +class SpecimenDefinition_ContainerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + material_field: CodeableConceptModel = Field(default=None, alias="material", description="The type of material of the container.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of container used to contain this kind of specimen.") + cap_field: CodeableConceptModel = Field(default=None, alias="cap", description="Color of container cap.") + description_field: markdownModel = Field(default=None, alias="description", description="The textual description of the kind of container.") + capacity_field: QuantityModel = Field(default=None, alias="capacity", description="The capacity (volume or other measure) of this kind of container.") + minimumVolumeQuantity_field: QuantityModel = Field(default=None, alias="minimumVolumeQuantity", description="The minimum volume to be conditioned in the container.") + additive_field: List[SpecimenDefinition_AdditiveModel] = Field(default_factory=list, alias="additive", description="Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.") + preparation_field: markdownModel = Field(default=None, alias="preparation", description="Special processing that should be applied to the container for this kind of specimen.") + +class SpecimenDefinition_AdditiveModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + additiveCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="additiveCodeableConcept", description="Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.") + additiveReference_field: ReferenceModel = Field(default=None, alias="additiveReference", description="Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.") + +class SpecimenDefinition_HandlingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + temperatureQualifier_field: CodeableConceptModel = Field(default=None, alias="temperatureQualifier", description="It qualifies the interval of temperature, which characterizes an occurrence of handling. Conditions that are not related to temperature may be handled in the instruction element.") + temperatureRange_field: RangeModel = Field(default=None, alias="temperatureRange", description="The temperature interval for this set of handling instructions.") + maxDuration_field: DurationModel = Field(default=None, alias="maxDuration", description="The maximum time interval of preservation of the specimen with these conditions.") + instruction_field: markdownModel = Field(default=None, alias="instruction", description="Additional textual instructions for the preservation or transport of the specimen. For instance, 'Protect from light exposure'.") + +class StructureDefinitionModel(BaseModel): + resourceType_field: str = "StructureDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this structure definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure definition is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this structure definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the structure definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure definition author and is not expected to be globally unique. There is no expectation that versions can be placed in a lexicographical sequence, so authors are encouraged to populate the StructureDefinition.versionAlgorithm[x] element to enable comparisons. If there is no managed version available, authors can consider using ISO date/time syntax (e.g., '2023-01-01').") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the structure definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the structure definition.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this structure definition. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this structure definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the structure definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the structure definition.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the structure definition from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure definition instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the structure definition is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this structure definition is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure definition. The short copyright declaration (e.g. (c) '2015+ xyz organization' should be sent in the copyrightLabel element.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + keyword_field: List[CodingModel] = Field(default_factory=list, alias="keyword", description="(DEPRECATED) A set of key words or terms from external terminologies that may be used to assist with indexing and searching of templates nby describing the use of this structure definition, or the content it describes.") + fhirVersion_field: codeModel = Field(default=None, alias="fhirVersion", description="The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.6.0. for this version.") + mapping_field: List[StructureDefinition_MappingModel] = Field(default_factory=list, alias="mapping", description="An external specification that the content is mapped to.") + kind_field: codeModel = Field(default=None, alias="kind", description="Defines the kind of structure that this definition is describing.") + abstract_field: booleanModel = Field(default=None, alias="abstract", description="Whether structure this definition describes is abstract or not - that is, whether the structure is not intended to be instantiated. For Resources and Data types, abstract types will never be exchanged between systems.") + context_field: List[StructureDefinition_ContextModel] = Field(default_factory=list, alias="context", description="Identifies the types of resource or data type elements to which the extension can be applied. For more guidance on using the 'context' element, see the [defining extensions page](defining-extensions.html#context).") + contextInvariant_field: List[stringModel] = Field(default_factory=list, alias="contextInvariant", description="A set of rules as FHIRPath Invariants about when the extension can be used (e.g. co-occurrence variants for the extension). All the rules must be true.") + type_field: uriModel = Field(default=None, alias="type", description="The type this structure describes. If the derivation kind is 'specialization' then this is the master definition for a type, and there is always one of these (a data type, an extension, a resource, including abstract ones). Otherwise the structure definition is a constraint on the stated type (and in this case, the type cannot be an abstract type). References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. string is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models, where they are required.") + baseDefinition_field: canonicalModel = Field(default=None, alias="baseDefinition", description="An absolute URI that is the base structure from which this type is derived, either by specialization or constraint.") + derivation_field: codeModel = Field(default=None, alias="derivation", description="How the type relates to the baseDefinition.") + snapshot_field: StructureDefinition_SnapshotModel = Field(default=None, alias="snapshot", description="A snapshot view is expressed in a standalone form that can be used and interpreted without considering the base StructureDefinition.") + differential_field: StructureDefinition_DifferentialModel = Field(default=None, alias="differential", description="A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies.") + +class StructureDefinition_MappingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identity_field: idModel = Field(default=None, alias="identity", description="An Internal id that is used to identify this mapping set when specific mappings are made.") + uri_field: uriModel = Field(default=None, alias="uri", description="An absolute URI that identifies the specification that this mapping is expressed to.") + name_field: stringModel = Field(default=None, alias="name", description="A name for the specification that is being mapped to.") + comment_field: stringModel = Field(default=None, alias="comment", description="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.") + +class StructureDefinition_ContextModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="Defines how to interpret the expression that defines what the context of the extension is.") + expression_field: stringModel = Field(default=None, alias="expression", description="An expression that defines where an extension can be used in resources.") + +class StructureDefinition_SnapshotModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + element_field: List[ElementDefinitionModel] = Field(default_factory=list, alias="element", description="Captures constraints on each element within the resource.") + +class StructureDefinition_DifferentialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + element_field: List[ElementDefinitionModel] = Field(default_factory=list, alias="element", description="Captures constraints on each element within the resource.") + +class StructureMapModel(BaseModel): + resourceType_field: str = "StructureMap" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the structure map.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this structure map. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the structure map from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the structure map is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this structure map is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + structure_field: List[StructureMap_StructureModel] = Field(default_factory=list, alias="structure", description="A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced.") + import_field: List[canonicalModel] = Field(default_factory=list, alias="import", description="Other maps used by this map (canonical URLs).") + const_field: List[StructureMap_ConstModel] = Field(default_factory=list, alias="const", description="Definition of a constant value used in the map rules.") + group_field: List[StructureMap_GroupModel] = Field(default_factory=list, alias="group", description="Organizes the mapping into managable chunks for human review/ease of maintenance.") + +class StructureMap_StructureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: canonicalModel = Field(default=None, alias="url", description="The canonical reference to the structure.") + mode_field: codeModel = Field(default=None, alias="mode", description="How the referenced structure is used in this mapping.") + alias_field: stringModel = Field(default=None, alias="alias", description="The name used for this type in the map.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="Documentation that describes how the structure is used in the mapping.") + +class StructureMap_ConstModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: idModel = Field(default=None, alias="name", description="Other maps used by this map (canonical URLs).") + value_field: stringModel = Field(default=None, alias="value", description="A FHIRPath expression that is the value of this variable.") + +class StructureMap_GroupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: idModel = Field(default=None, alias="name", description="A unique name for the group for the convenience of human readers.") + extends_field: idModel = Field(default=None, alias="extends", description="Another group that this group adds rules to.") + typeMode_field: codeModel = Field(default=None, alias="typeMode", description="If this is the default rule set to apply for the source type or this combination of types.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="Additional supporting documentation that explains the purpose of the group and the types of mappings within it.") + input_field: List[StructureMap_InputModel] = Field(default_factory=list, alias="input", description="A name assigned to an instance of data. The instance must be provided when the mapping is invoked.") + rule_field: List[StructureMap_RuleModel] = Field(default_factory=list, alias="rule", description="Transform Rule from source to target.") + +class StructureMap_InputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: idModel = Field(default=None, alias="name", description="Name for this instance of data.") + type_field: stringModel = Field(default=None, alias="type", description="Type for this instance of data.") + mode_field: codeModel = Field(default=None, alias="mode", description="Mode for this instance of data.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="Documentation for this instance of data.") + +class StructureMap_RuleModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: idModel = Field(default=None, alias="name", description="Name of the rule for internal references.") + source_field: List[StructureMap_SourceModel] = Field(default_factory=list, alias="source", description="Source inputs to the mapping.") + target_field: List[StructureMap_TargetModel] = Field(default_factory=list, alias="target", description="Content to create because of this mapping rule.") + rule_field: List[StructureMap_RuleModel] = Field(default_factory=list, alias="rule", description="Rules contained in this rule.") + dependent_field: List[StructureMap_DependentModel] = Field(default_factory=list, alias="dependent", description="Which other rules to apply in the context of this rule.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="Documentation for this instance of data.") + +class StructureMap_SourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + context_field: idModel = Field(default=None, alias="context", description="Type or variable this rule applies to.") + min_field: integerModel = Field(default=None, alias="min", description="Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.") + max_field: stringModel = Field(default=None, alias="max", description="Specified maximum cardinality for the element - a number or a *. This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).") + type_field: stringModel = Field(default=None, alias="type", description="Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.") + defaultValue_field: stringModel = Field(default=None, alias="defaultValue", description="A value to use if there is no existing value in the source object.") + element_field: stringModel = Field(default=None, alias="element", description="Optional field for this source.") + listMode_field: codeModel = Field(default=None, alias="listMode", description="How to handle the list mode for this element.") + variable_field: idModel = Field(default=None, alias="variable", description="Named context for field, if a field is specified.") + condition_field: stringModel = Field(default=None, alias="condition", description="FHIRPath expression - must be true or the rule does not apply.") + check_field: stringModel = Field(default=None, alias="check", description="FHIRPath expression - must be true or the mapping engine throws an error instead of completing.") + logMessage_field: stringModel = Field(default=None, alias="logMessage", description="A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.") + +class StructureMap_TargetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + context_field: stringModel = Field(default=None, alias="context", description="Variable this rule applies to.") + element_field: stringModel = Field(default=None, alias="element", description="Field to create in the context.") + variable_field: idModel = Field(default=None, alias="variable", description="Named context for field, if desired, and a field is specified.") + listMode_field: List[codeModel] = Field(default_factory=list, alias="listMode", description="If field is a list, how to manage the list.") + listRuleId_field: idModel = Field(default=None, alias="listRuleId", description="Internal rule reference for shared list items.") + transform_field: codeModel = Field(default=None, alias="transform", description="How the data is copied / created.") + parameter_field: List[StructureMap_ParameterModel] = Field(default_factory=list, alias="parameter", description="Parameters to the transform.") + +class StructureMap_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + +class StructureMap_DependentModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: idModel = Field(default=None, alias="name", description="Name of a rule or group to apply.") + parameter_field: List[StructureMap_ParameterModel] = Field(default_factory=list, alias="parameter", description="Parameter to pass to the rule or group.") + +class SubscriptionModel(BaseModel): + resourceType_field: str = "Subscription" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the subscription.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the subscription, which marks the server state for managing the subscription.") + topic_field: canonicalModel = Field(default=None, alias="topic", description="The reference to the subscription topic to be notified about.") + contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.") + end_field: instantModel = Field(default=None, alias="end", description="The time for the server to turn the subscription off.") + managingEntity_field: ReferenceModel = Field(default=None, alias="managingEntity", description="Entity with authorization to make subsequent revisions to the Subscription and also determines what data the subscription is authorized to disclose.") + reason_field: stringModel = Field(default=None, alias="reason", description="A description of why this subscription is defined.") + filterBy_field: List[Subscription_FilterByModel] = Field(default_factory=list, alias="filterBy", description="The filter properties to be applied to narrow the subscription topic stream. When multiple filters are applied, evaluates to true if all the conditions applicable to that resource are met; otherwise it returns false (i.e., logical AND).") + channelType_field: CodingModel = Field(default=None, alias="channelType", description="The type of channel to send notifications on.") + endpoint_field: urlModel = Field(default=None, alias="endpoint", description="The url that describes the actual end-point to send notifications to.") + parameter_field: List[Subscription_ParameterModel] = Field(default_factory=list, alias="parameter", description="Channel-dependent information to send as part of the notification (e.g., HTTP Headers).") + heartbeatPeriod_field: unsignedIntModel = Field(default=None, alias="heartbeatPeriod", description="If present, a 'heartbeat' notification (keep-alive) is sent via this channel with an interval period equal to this elements integer value in seconds. If not present, a heartbeat notification is not sent.") + timeout_field: unsignedIntModel = Field(default=None, alias="timeout", description="If present, the maximum amount of time a server will allow before failing a notification attempt.") + contentType_field: codeModel = Field(default=None, alias="contentType", description="The MIME type to send the payload in - e.g., `application/fhir+xml` or `application/fhir+json`. Note that:") + content_field: codeModel = Field(default=None, alias="content", description="How much of the resource content to deliver in the notification payload. The choices are an empty payload, only the resource id, or the full resource content.") + maxCount_field: positiveIntModel = Field(default=None, alias="maxCount", description="If present, the maximum number of events that will be included in a notification bundle. Note that this is not a strict limit on the number of entries in a bundle, as dependent resources can be included.") + +class Subscription_FilterByModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + resourceType_field: uriModel = Field(default=None, alias="resourceType", description="A resource listed in the `SubscriptionTopic` this `Subscription` references (`SubscriptionTopic.canFilterBy.resource`). This element can be used to differentiate filters for topics that include more than one resource type.") + filterParameter_field: stringModel = Field(default=None, alias="filterParameter", description="The filter as defined in the `SubscriptionTopic.canFilterBy.filterParameter` element.") + comparator_field: codeModel = Field(default=None, alias="comparator", description="Comparator applied to this filter parameter.") + modifier_field: codeModel = Field(default=None, alias="modifier", description="Modifier applied to this filter parameter.") + value_field: stringModel = Field(default=None, alias="value", description="The literal value or resource path as is legal in search - for example, `Patient/123` or `le1950`.") + +class Subscription_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Parameter name for information passed to the channel for notifications, for example in the case of a REST hook wanting to pass through an authorization header, the name would be Authorization.") + value_field: stringModel = Field(default=None, alias="value", description="Parameter value for information passed to the channel for notifications, for example in the case of a REST hook wanting to pass through an authorization header, the value would be `Bearer 0193...`.") + +class SubscriptionStatusModel(BaseModel): + resourceType_field: str = "SubscriptionStatus" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the subscription, which marks the server state for managing the subscription.") + type_field: codeModel = Field(default=None, alias="type", description="The type of event being conveyed with this notification.") + eventsSinceSubscriptionStart_field: integer64Model = Field(default=None, alias="eventsSinceSubscriptionStart", description="The total number of actual events which have been generated since the Subscription was created (inclusive of this notification) - regardless of how many have been successfully communicated. This number is NOT incremented for handshake and heartbeat notifications.") + notificationEvent_field: List[SubscriptionStatus_NotificationEventModel] = Field(default_factory=list, alias="notificationEvent", description="Detailed information about events relevant to this subscription notification.") + subscription_field: ReferenceModel = Field(default=None, alias="subscription", description="The reference to the Subscription which generated this notification.") + topic_field: canonicalModel = Field(default=None, alias="topic", description="The reference to the SubscriptionTopic for the Subscription which generated this notification.") + error_field: List[CodeableConceptModel] = Field(default_factory=list, alias="error", description="A record of errors that occurred when the server processed a notification.") + +class SubscriptionStatus_NotificationEventModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + eventNumber_field: integer64Model = Field(default=None, alias="eventNumber", description="Either the sequential number of this event in this subscription context or a relative event number for this notification.") + timestamp_field: instantModel = Field(default=None, alias="timestamp", description="The actual time this event occurred on the server.") + focus_field: ReferenceModel = Field(default=None, alias="focus", description="The focus of this event. While this will usually be a reference to the focus resource of the event, it MAY contain a reference to a non-FHIR object.") + additionalContext_field: List[ReferenceModel] = Field(default_factory=list, alias="additionalContext", description="Additional context information for this event. Generally, this will contain references to additional resources included with the event (e.g., the Patient relevant to an Encounter), however it MAY refer to non-FHIR objects.") + +class SubscriptionTopicModel(BaseModel): + resourceType_field: str = "SubscriptionTopic" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this subscription topic when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this subscription topic is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the subscription topic is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this subscription topic by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the subscription topic when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the Topic author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions are orderable.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the subscription topic This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the subscription topic. For example, admission.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the SubscriptionTopic.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A flag to indicate that this TopSubscriptionTopicic is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the subscription topic was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the subscription topic changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="Helps establish the authority/credibility of the SubscriptionTopic. May also allow for contact.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the Topic from the consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of code system definitions.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A jurisdiction in which the Topic is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explains why this Topic is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the SubscriptionTopic and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the SubscriptionTopic.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="The canonical URL pointing to another FHIR-defined SubscriptionTopic that is adhered to in whole or in part by this SubscriptionTopic.") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the asset content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the asset content was last reviewed. Review happens periodically after that, but doesn't change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the SubscriptionTopic content was or is planned to be effective.") + resourceTrigger_field: List[SubscriptionTopic_ResourceTriggerModel] = Field(default_factory=list, alias="resourceTrigger", description="A definition of a resource-based event that triggers a notification based on the SubscriptionTopic. The criteria may be just a human readable description and/or a full FHIR search string or FHIRPath expression. Multiple triggers are considered OR joined (e.g., a resource update matching ANY of the definitions will trigger a notification).") + eventTrigger_field: List[SubscriptionTopic_EventTriggerModel] = Field(default_factory=list, alias="eventTrigger", description="Event definition which can be used to trigger the SubscriptionTopic.") + canFilterBy_field: List[SubscriptionTopic_CanFilterByModel] = Field(default_factory=list, alias="canFilterBy", description="List of properties by which Subscriptions on the SubscriptionTopic can be filtered. May be defined Search Parameters (e.g., Encounter.patient) or parameters defined within this SubscriptionTopic context (e.g., hub.event).") + notificationShape_field: List[SubscriptionTopic_NotificationShapeModel] = Field(default_factory=list, alias="notificationShape", description="List of properties to describe the shape (e.g., resources) included in notifications from this Subscription Topic.") + +class SubscriptionTopic_ResourceTriggerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this resource trigger for the SubscriptionTopic - for example, An Encounter enters the 'in-progress' state.") + resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the type used in this resource trigger. Relative URLs are relative to the StructureDefinition root of the implemented FHIR version (e.g., http://hl7.org/fhir/StructureDefinition). For example, Patient maps to http://hl7.org/fhir/StructureDefinition/Patient. For more information, see ElementDefinition.type.code.") + supportedInteraction_field: List[codeModel] = Field(default_factory=list, alias="supportedInteraction", description="The FHIR RESTful interaction which can be used to trigger a notification for the SubscriptionTopic. Multiple values are considered OR joined (e.g., CREATE or UPDATE). If not present, all supported interactions are assumed.") + queryCriteria_field: SubscriptionTopic_QueryCriteriaModel = Field(default=None, alias="queryCriteria", description="The FHIR query based rules that the server should use to determine when to trigger a notification for this subscription topic.") + fhirPathCriteria_field: stringModel = Field(default=None, alias="fhirPathCriteria", description="The FHIRPath based rules that the server should use to determine when to trigger a notification for this topic.") + +class SubscriptionTopic_QueryCriteriaModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + previous_field: stringModel = Field(default=None, alias="previous", description="The FHIR query based rules are applied to the previous resource state (e.g., state before an update).") + resultForCreate_field: codeModel = Field(default=None, alias="resultForCreate", description="For `create` interactions, should the `previous` criteria count as an automatic pass or an automatic fail. If not present, the testing behavior during `create` interactions is unspecified (server discretion).") + current_field: stringModel = Field(default=None, alias="current", description="The FHIR query based rules are applied to the current resource state (e.g., state after an update).") + resultForDelete_field: codeModel = Field(default=None, alias="resultForDelete", description="For 'delete' interactions, should the 'current' query criteria count as an automatic pass or an automatic fail. If not present, the testing behavior during `delete` interactions is unspecified (server discretion).") + requireBoth_field: booleanModel = Field(default=None, alias="requireBoth", description="If set to `true`, both the `current` and `previous` query criteria must evaluate `true` to trigger a notification for this topic. If set to `false` or not present, a notification for this topic will be triggered if either the `current` or `previous` tests evaluate to `true`.") + +class SubscriptionTopic_EventTriggerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of an event to trigger a notification for the SubscriptionTopic - for example, Patient Admission, as defined in HL7v2 via message ADT^A01. Multiple values are considered OR joined (e.g., matching any single event listed).") + event_field: CodeableConceptModel = Field(default=None, alias="event", description="A well-defined event which can be used to trigger notifications from the SubscriptionTopic.") + resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the focus type used in this event trigger. Relative URLs are relative to the StructureDefinition root of the implemented FHIR version (e.g., http://hl7.org/fhir/StructureDefinition). For example, Patient maps to http://hl7.org/fhir/StructureDefinition/Patient. For more information, see ElementDefinition.type.code.") + +class SubscriptionTopic_CanFilterByModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Description of how this filtering parameter is intended to be used.") + resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the type used in this filter. This is the focus of the topic (or one of them if there are more than one). It will be the same, a generality, or a specificity of SubscriptionTopic.resourceTrigger.resource or SubscriptionTopic.eventTrigger.resource when they are present.") + filterParameter_field: stringModel = Field(default=None, alias="filterParameter", description="Either the canonical URL to a search parameter (like http://hl7.org/fhir/SearchParameter/encounter-patient) or topic-defined parameter (like hub.event) which is a label for the filter.") + filterDefinition_field: uriModel = Field(default=None, alias="filterDefinition", description="Either the canonical URL to a search parameter (like http://hl7.org/fhir/SearchParameter/encounter-patient) or the officially-defined URI for a shared filter concept (like http://example.org/concepts/shared-common-event).") + comparator_field: List[codeModel] = Field(default_factory=list, alias="comparator", description="Comparators allowed for the filter parameter.") + modifier_field: List[codeModel] = Field(default_factory=list, alias="modifier", description="Modifiers allowed for the filter parameter.") + +class SubscriptionTopic_NotificationShapeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the type used in this shape. This is the 'focus' resource of the topic (or one of them if there are more than one) and the root resource for this shape definition. It will be the same, a generality, or a specificity of SubscriptionTopic.resourceTrigger.resource or SubscriptionTopic.eventTrigger.resource when they are present.") + include_field: List[stringModel] = Field(default_factory=list, alias="include", description="Search-style _include directives, rooted in the resource for this shape. Servers SHOULD include resources listed here, if they exist and the user is authorized to receive them. Clients SHOULD be prepared to receive these additional resources, but SHALL function properly without them.") + revInclude_field: List[stringModel] = Field(default_factory=list, alias="revInclude", description="Search-style _revinclude directives, rooted in the resource for this shape. Servers SHOULD include resources listed here, if they exist and the user is authorized to receive them. Clients SHOULD be prepared to receive these additional resources, but SHALL function properly without them.") + +class SubstanceModel(BaseModel): + resourceType_field: str = "Substance" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for the substance. For an instance, an identifier associated with the package/container (usually a label affixed directly).") + instance_field: booleanModel = Field(default=None, alias="instance", description="A boolean to indicate if this an instance of a substance or a kind of one (a definition).") + status_field: codeModel = Field(default=None, alias="status", description="A code to indicate if the substance is actively used.") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of substance. This is used for searching, sorting and display purposes.") + code_field: CodeableReferenceModel = Field(default=None, alias="code", description="A code (or set of codes) that identify this substance.") + description_field: markdownModel = Field(default=None, alias="description", description="A description of the substance - its appearance, handling requirements, and other usage notes.") + expiry_field: dateTimeModel = Field(default=None, alias="expiry", description="When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of the substance.") + ingredient_field: List[Substance_IngredientModel] = Field(default_factory=list, alias="ingredient", description="A substance can be composed of other substances.") + +class Substance_IngredientModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + quantity_field: RatioModel = Field(default=None, alias="quantity", description="The amount of the ingredient in the substance - a concentration ratio.") + substanceCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="substanceCodeableConcept", description="Another substance that is a component of this substance.") + substanceReference_field: ReferenceModel = Field(default=None, alias="substanceReference", description="Another substance that is a component of this substance.") + +class SubstanceDefinitionModel(BaseModel): + resourceType_field: str = "SubstanceDefinition" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier by which this substance is known.") + version_field: stringModel = Field(default=None, alias="version", description="A business level version identifier of the substance.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="Status of substance within the catalogue e.g. active, retired.") + classification_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classification", description="A high level categorization, e.g. polymer or nucleic acid, or food, chemical, biological, or a lower level such as the general types of polymer (linear or branch chain) or type of impurity (process related or contaminant).") + domain_field: CodeableConceptModel = Field(default=None, alias="domain", description="If the substance applies to human or veterinary use.") + grade_field: List[CodeableConceptModel] = Field(default_factory=list, alias="grade", description="The quality standard, established benchmark, to which substance complies (e.g. USP/NF, Ph. Eur, JP, BP, Company Standard).") + description_field: markdownModel = Field(default=None, alias="description", description="Textual description of the substance.") + informationSource_field: List[ReferenceModel] = Field(default_factory=list, alias="informationSource", description="Supporting literature.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Textual comment about the substance's catalogue or registry record.") + manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="The entity that creates, makes, produces or fabricates the substance. This is a set of potential manufacturers but is not necessarily comprehensive.") + supplier_field: List[ReferenceModel] = Field(default_factory=list, alias="supplier", description="An entity that is the source for the substance. It may be different from the manufacturer. Supplier is synonymous to a distributor.") + moiety_field: List[SubstanceDefinition_MoietyModel] = Field(default_factory=list, alias="moiety", description="Moiety, for structural modifications.") + characterization_field: List[SubstanceDefinition_CharacterizationModel] = Field(default_factory=list, alias="characterization", description="General specifications for this substance.") + property_field: List[SubstanceDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General specifications for this substance.") + referenceInformation_field: ReferenceModel = Field(default=None, alias="referenceInformation", description="General information detailing this substance.") + molecularWeight_field: List[SubstanceDefinition_MolecularWeightModel] = Field(default_factory=list, alias="molecularWeight", description="The average mass of a molecule of a compound compared to 1/12 the mass of carbon 12 and calculated as the sum of the atomic weights of the constituent atoms.") + structure_field: SubstanceDefinition_StructureModel = Field(default=None, alias="structure", description="Structural information.") + code_field: List[SubstanceDefinition_CodeModel] = Field(default_factory=list, alias="code", description="Codes associated with the substance.") + name_field: List[SubstanceDefinition_NameModel] = Field(default_factory=list, alias="name", description="Names applicable to this substance.") + relationship_field: List[SubstanceDefinition_RelationshipModel] = Field(default_factory=list, alias="relationship", description="A link between this substance and another, with details of the relationship.") + nucleicAcid_field: ReferenceModel = Field(default=None, alias="nucleicAcid", description="Data items specific to nucleic acids.") + polymer_field: ReferenceModel = Field(default=None, alias="polymer", description="Data items specific to polymers.") + protein_field: ReferenceModel = Field(default=None, alias="protein", description="Data items specific to proteins.") + sourceMaterial_field: SubstanceDefinition_SourceMaterialModel = Field(default=None, alias="sourceMaterial", description="Material or taxonomic/anatomical source for the substance.") + +class SubstanceDefinition_MoietyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + role_field: CodeableConceptModel = Field(default=None, alias="role", description="Role that the moiety is playing.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifier by which this moiety substance is known.") + name_field: stringModel = Field(default=None, alias="name", description="Textual name for this moiety substance.") + stereochemistry_field: CodeableConceptModel = Field(default=None, alias="stereochemistry", description="Stereochemistry type.") + opticalActivity_field: CodeableConceptModel = Field(default=None, alias="opticalActivity", description="Optical activity type.") + molecularFormula_field: stringModel = Field(default=None, alias="molecularFormula", description="Molecular formula for this moiety of this substance, typically using the Hill system.") + amountQuantity_field: QuantityModel = Field(default=None, alias="amountQuantity", description="Quantitative value for this moiety.") + measurementType_field: CodeableConceptModel = Field(default=None, alias="measurementType", description="The measurement type of the quantitative value. In capturing the actual relative amounts of substances or molecular fragments it may be necessary to indicate whether the amount refers to, for example, a mole ratio or weight ratio.") + +class SubstanceDefinition_CharacterizationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + technique_field: CodeableConceptModel = Field(default=None, alias="technique", description="The method used to elucidate the characterization of the drug substance. Example: HPLC.") + form_field: CodeableConceptModel = Field(default=None, alias="form", description="Describes the nature of the chemical entity and explains, for instance, whether this is a base or a salt form.") + description_field: markdownModel = Field(default=None, alias="description", description="The description or justification in support of the interpretation of the data file.") + file_field: List[AttachmentModel] = Field(default_factory=list, alias="file", description="The data produced by the analytical instrument or a pictorial representation of that data. Examples: a JCAMP, JDX, or ADX file, or a chromatogram or spectrum analysis.") + +class SubstanceDefinition_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of property.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the property.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the property.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the property.") + +class SubstanceDefinition_MolecularWeightModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + method_field: CodeableConceptModel = Field(default=None, alias="method", description="The method by which the molecular weight was determined.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of molecular weight such as exact, average (also known as. number average), weight average.") + amount_field: QuantityModel = Field(default=None, alias="amount", description="Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field.") + +class SubstanceDefinition_StructureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + stereochemistry_field: CodeableConceptModel = Field(default=None, alias="stereochemistry", description="Stereochemistry type.") + opticalActivity_field: CodeableConceptModel = Field(default=None, alias="opticalActivity", description="Optical activity type.") + molecularFormula_field: stringModel = Field(default=None, alias="molecularFormula", description="An expression which states the number and type of atoms present in a molecule of a substance.") + molecularFormulaByMoiety_field: stringModel = Field(default=None, alias="molecularFormulaByMoiety", description="Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot.") + molecularWeight_field: SubstanceDefinition_MolecularWeightModel = Field(default=None, alias="molecularWeight", description="The molecular weight or weight range (for proteins, polymers or nucleic acids).") + technique_field: List[CodeableConceptModel] = Field(default_factory=list, alias="technique", description="The method used to elucidate the structure of the drug substance. Examples: X-ray, NMR, Peptide mapping, Ligand binding assay.") + sourceDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="sourceDocument", description="The source of information about the structure.") + representation_field: List[SubstanceDefinition_RepresentationModel] = Field(default_factory=list, alias="representation", description="A depiction of the structure of the substance.") + +class SubstanceDefinition_RepresentationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of structural representation (e.g. full, partial).") + representation_field: stringModel = Field(default=None, alias="representation", description="The structural representation as a text string in a standard format.") + format_field: CodeableConceptModel = Field(default=None, alias="format", description="The format of the representation e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF. The logical content type rather than the physical file format of a document.") + document_field: ReferenceModel = Field(default=None, alias="document", description="An attached file with the structural representation e.g. a molecular structure graphic of the substance, a JCAMP or AnIML file.") + +class SubstanceDefinition_CodeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The specific code.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="Status of the code assignment, for example 'provisional', 'approved'.") + statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the code status was changed as part of the terminology maintenance.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any comment can be provided in this field, if necessary.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Supporting literature.") + +class SubstanceDefinition_NameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The actual name.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Name type, for example 'systematic', 'scientific, 'brand'.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status of the name, for example 'current', 'proposed'.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="If this is the preferred name for this substance.") + language_field: List[CodeableConceptModel] = Field(default_factory=list, alias="language", description="Human language that the name is written in.") + domain_field: List[CodeableConceptModel] = Field(default_factory=list, alias="domain", description="The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="The jurisdiction where this name applies.") + synonym_field: List[SubstanceDefinition_NameModel] = Field(default_factory=list, alias="synonym", description="A synonym of this particular name, by which the substance is also known.") + translation_field: List[SubstanceDefinition_NameModel] = Field(default_factory=list, alias="translation", description="A translation for this name into another human language.") + official_field: List[SubstanceDefinition_OfficialModel] = Field(default_factory=list, alias="official", description="Details of the official nature of this name.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Supporting literature.") + +class SubstanceDefinition_OfficialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + authority_field: CodeableConceptModel = Field(default=None, alias="authority", description="Which authority uses this official name.") + status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status of the official name, for example 'draft', 'active', 'retired'.") + date_field: dateTimeModel = Field(default=None, alias="date", description="Date of the official name change.") + +class SubstanceDefinition_RelationshipModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + substanceDefinitionReference_field: ReferenceModel = Field(default=None, alias="substanceDefinitionReference", description="A pointer to another substance, as a resource or just a representational code.") + substanceDefinitionCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="substanceDefinitionCodeableConcept", description="A pointer to another substance, as a resource or just a representational code.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="For example salt to parent, active moiety, starting material, polymorph, impurity of.") + isDefining_field: booleanModel = Field(default=None, alias="isDefining", description="For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships.") + amountQuantity_field: QuantityModel = Field(default=None, alias="amountQuantity", description="A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other.") + amountRatio_field: RatioModel = Field(default=None, alias="amountRatio", description="A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other.") + ratioHighLimitAmount_field: RatioModel = Field(default=None, alias="ratioHighLimitAmount", description="For use when the numeric has an uncertain range.") + comparator_field: CodeableConceptModel = Field(default=None, alias="comparator", description="An operator for the amount, for example average, approximately, less than.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Supporting literature.") + +class SubstanceDefinition_SourceMaterialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A classification that provides the origin of the raw material. Example: cat hair would be an Animal source type.") + genus_field: CodeableConceptModel = Field(default=None, alias="genus", description="The genus of an organism, typically referring to the Latin epithet of the genus element of the plant/animal scientific name.") + species_field: CodeableConceptModel = Field(default=None, alias="species", description="The species of an organism, typically referring to the Latin epithet of the species of the plant/animal.") + part_field: CodeableConceptModel = Field(default=None, alias="part", description="An anatomical origin of the source material within an organism.") + countryOfOrigin_field: List[CodeableConceptModel] = Field(default_factory=list, alias="countryOfOrigin", description="The country or countries where the material is harvested.") + +class SubstanceNucleicAcidModel(BaseModel): + resourceType_field: str = "SubstanceNucleicAcid" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequenceType_field: CodeableConceptModel = Field(default=None, alias="sequenceType", description="The type of the sequence shall be specified based on a controlled vocabulary.") + numberOfSubunits_field: integerModel = Field(default=None, alias="numberOfSubunits", description="The number of linear sequences of nucleotides linked through phosphodiester bonds shall be described. Subunits would be strands of nucleic acids that are tightly associated typically through Watson-Crick base pairing. NOTE: If not specified in the reference source, the assumption is that there is 1 subunit.") + areaOfHybridisation_field: stringModel = Field(default=None, alias="areaOfHybridisation", description="The area of hybridisation shall be described if applicable for double stranded RNA or DNA. The number associated with the subunit followed by the number associated to the residue shall be specified in increasing order. The underscore “” shall be used as separator as follows: “Subunitnumber Residue”.") + oligoNucleotideType_field: CodeableConceptModel = Field(default=None, alias="oligoNucleotideType", description="(TBC).") + subunit_field: List[SubstanceNucleicAcid_SubunitModel] = Field(default_factory=list, alias="subunit", description="Subunits are listed in order of decreasing length; sequences of the same length will be ordered by molecular weight; subunits that have identical sequences will be repeated multiple times.") + +class SubstanceNucleicAcid_SubunitModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + subunit_field: integerModel = Field(default=None, alias="subunit", description="Index of linear sequences of nucleic acids in order of decreasing length. Sequences of the same length will be ordered by molecular weight. Subunits that have identical sequences will be repeated and have sequential subscripts.") + sequence_field: stringModel = Field(default=None, alias="sequence", description="Actual nucleotide sequence notation from 5' to 3' end using standard single letter codes. In addition to the base sequence, sugar and type of phosphate or non-phosphate linkage should also be captured.") + length_field: integerModel = Field(default=None, alias="length", description="The length of the sequence shall be captured.") + sequenceAttachment_field: AttachmentModel = Field(default=None, alias="sequenceAttachment", description="(TBC).") + fivePrime_field: CodeableConceptModel = Field(default=None, alias="fivePrime", description="The nucleotide present at the 5’ terminal shall be specified based on a controlled vocabulary. Since the sequence is represented from the 5' to the 3' end, the 5’ prime nucleotide is the letter at the first position in the sequence. A separate representation would be redundant.") + threePrime_field: CodeableConceptModel = Field(default=None, alias="threePrime", description="The nucleotide present at the 3’ terminal shall be specified based on a controlled vocabulary. Since the sequence is represented from the 5' to the 3' end, the 5’ prime nucleotide is the letter at the last position in the sequence. A separate representation would be redundant.") + linkage_field: List[SubstanceNucleicAcid_LinkageModel] = Field(default_factory=list, alias="linkage", description="The linkages between sugar residues will also be captured.") + sugar_field: List[SubstanceNucleicAcid_SugarModel] = Field(default_factory=list, alias="sugar", description="5.3.6.8.1 Sugar ID (Mandatory).") + +class SubstanceNucleicAcid_LinkageModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + connectivity_field: stringModel = Field(default=None, alias="connectivity", description="The entity that links the sugar residues together should also be captured for nearly all naturally occurring nucleic acid the linkage is a phosphate group. For many synthetic oligonucleotides phosphorothioate linkages are often seen. Linkage connectivity is assumed to be 3’-5’. If the linkage is either 3’-3’ or 5’-5’ this should be specified.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Each linkage will be registered as a fragment and have an ID.") + name_field: stringModel = Field(default=None, alias="name", description="Each linkage will be registered as a fragment and have at least one name. A single name shall be assigned to each linkage.") + residueSite_field: stringModel = Field(default=None, alias="residueSite", description="Residues shall be captured as described in 5.3.6.8.3.") + +class SubstanceNucleicAcid_SugarModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The Substance ID of the sugar or sugar-like component that make up the nucleotide.") + name_field: stringModel = Field(default=None, alias="name", description="The name of the sugar or sugar-like component that make up the nucleotide.") + residueSite_field: stringModel = Field(default=None, alias="residueSite", description="The residues that contain a given sugar will be captured. The order of given residues will be captured in the 5‘-3‘direction consistent with the base sequences listed above.") + +class SubstancePolymerModel(BaseModel): + resourceType_field: str = "SubstancePolymer" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="A business idenfier for this polymer, but typically this is handled by a SubstanceDefinition identifier.") + class_field: CodeableConceptModel = Field(default=None, alias="class", description="Overall type of the polymer.") + geometry_field: CodeableConceptModel = Field(default=None, alias="geometry", description="Polymer geometry, e.g. linear, branched, cross-linked, network or dendritic.") + copolymerConnectivity_field: List[CodeableConceptModel] = Field(default_factory=list, alias="copolymerConnectivity", description="Descrtibes the copolymer sequence type (polymer connectivity).") + modification_field: stringModel = Field(default=None, alias="modification", description="Todo - this is intended to connect to a repeating full modification structure, also used by Protein and Nucleic Acid . String is just a placeholder.") + monomerSet_field: List[SubstancePolymer_MonomerSetModel] = Field(default_factory=list, alias="monomerSet", description="Todo.") + repeat_field: List[SubstancePolymer_RepeatModel] = Field(default_factory=list, alias="repeat", description="Specifies and quantifies the repeated units and their configuration.") + +class SubstancePolymer_MonomerSetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + ratioType_field: CodeableConceptModel = Field(default=None, alias="ratioType", description="Captures the type of ratio to the entire polymer, e.g. Monomer/Polymer ratio, SRU/Polymer Ratio.") + startingMaterial_field: List[SubstancePolymer_StartingMaterialModel] = Field(default_factory=list, alias="startingMaterial", description="The starting materials - monomer(s) used in the synthesis of the polymer.") + +class SubstancePolymer_StartingMaterialModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of substance for this starting material.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Substance high level category, e.g. chemical substance.") + isDefining_field: booleanModel = Field(default=None, alias="isDefining", description="Used to specify whether the attribute described is a defining element for the unique identification of the polymer.") + amount_field: QuantityModel = Field(default=None, alias="amount", description="A percentage.") + +class SubstancePolymer_RepeatModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + averageMolecularFormula_field: stringModel = Field(default=None, alias="averageMolecularFormula", description="A representation of an (average) molecular formula from a polymer.") + repeatUnitAmountType_field: CodeableConceptModel = Field(default=None, alias="repeatUnitAmountType", description="How the quantitative amount of Structural Repeat Units is captured (e.g. Exact, Numeric, Average).") + repeatUnit_field: List[SubstancePolymer_RepeatUnitModel] = Field(default_factory=list, alias="repeatUnit", description="An SRU - Structural Repeat Unit.") + +class SubstancePolymer_RepeatUnitModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + unit_field: stringModel = Field(default=None, alias="unit", description="Structural repeat units are essential elements for defining polymers.") + orientation_field: CodeableConceptModel = Field(default=None, alias="orientation", description="The orientation of the polymerisation, e.g. head-tail, head-head, random.") + amount_field: integerModel = Field(default=None, alias="amount", description="Number of repeats of this unit.") + degreeOfPolymerisation_field: List[SubstancePolymer_DegreeOfPolymerisationModel] = Field(default_factory=list, alias="degreeOfPolymerisation", description="Applies to homopolymer and block co-polymers where the degree of polymerisation within a block can be described.") + structuralRepresentation_field: List[SubstancePolymer_StructuralRepresentationModel] = Field(default_factory=list, alias="structuralRepresentation", description="A graphical structure for this SRU.") + +class SubstancePolymer_DegreeOfPolymerisationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the degree of polymerisation shall be described, e.g. SRU/Polymer Ratio.") + average_field: integerModel = Field(default=None, alias="average", description="An average amount of polymerisation.") + low_field: integerModel = Field(default=None, alias="low", description="A low expected limit of the amount.") + high_field: integerModel = Field(default=None, alias="high", description="A high expected limit of the amount.") + +class SubstancePolymer_StructuralRepresentationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of structure (e.g. Full, Partial, Representative).") + representation_field: stringModel = Field(default=None, alias="representation", description="The structural representation as text string in a standard format e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF.") + format_field: CodeableConceptModel = Field(default=None, alias="format", description="The format of the representation e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF.") + attachment_field: AttachmentModel = Field(default=None, alias="attachment", description="An attached file with the structural representation.") + +class SubstanceProteinModel(BaseModel): + resourceType_field: str = "SubstanceProtein" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequenceType_field: CodeableConceptModel = Field(default=None, alias="sequenceType", description="The SubstanceProtein descriptive elements will only be used when a complete or partial amino acid sequence is available or derivable from a nucleic acid sequence.") + numberOfSubunits_field: integerModel = Field(default=None, alias="numberOfSubunits", description="Number of linear sequences of amino acids linked through peptide bonds. The number of subunits constituting the SubstanceProtein shall be described. It is possible that the number of subunits can be variable.") + disulfideLinkage_field: List[stringModel] = Field(default_factory=list, alias="disulfideLinkage", description="The disulphide bond between two cysteine residues either on the same subunit or on two different subunits shall be described. The position of the disulfide bonds in the SubstanceProtein shall be listed in increasing order of subunit number and position within subunit followed by the abbreviation of the amino acids involved. The disulfide linkage positions shall actually contain the amino acid Cysteine at the respective positions.") + subunit_field: List[SubstanceProtein_SubunitModel] = Field(default_factory=list, alias="subunit", description="This subclause refers to the description of each subunit constituting the SubstanceProtein. A subunit is a linear sequence of amino acids linked through peptide bonds. The Subunit information shall be provided when the finished SubstanceProtein is a complex of multiple sequences; subunits are not used to delineate domains within a single sequence. Subunits are listed in order of decreasing length; sequences of the same length will be ordered by decreasing molecular weight; subunits that have identical sequences will be repeated multiple times.") + +class SubstanceProtein_SubunitModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + subunit_field: integerModel = Field(default=None, alias="subunit", description="Index of primary sequences of amino acids linked through peptide bonds in order of decreasing length. Sequences of the same length will be ordered by molecular weight. Subunits that have identical sequences will be repeated and have sequential subscripts.") + sequence_field: stringModel = Field(default=None, alias="sequence", description="The sequence information shall be provided enumerating the amino acids from N- to C-terminal end using standard single-letter amino acid codes. Uppercase shall be used for L-amino acids and lowercase for D-amino acids. Transcribed SubstanceProteins will always be described using the translated sequence; for synthetic peptide containing amino acids that are not represented with a single letter code an X should be used within the sequence. The modified amino acids will be distinguished by their position in the sequence.") + length_field: integerModel = Field(default=None, alias="length", description="Length of linear sequences of amino acids contained in the subunit.") + sequenceAttachment_field: AttachmentModel = Field(default=None, alias="sequenceAttachment", description="The sequence information shall be provided enumerating the amino acids from N- to C-terminal end using standard single-letter amino acid codes. Uppercase shall be used for L-amino acids and lowercase for D-amino acids. Transcribed SubstanceProteins will always be described using the translated sequence; for synthetic peptide containing amino acids that are not represented with a single letter code an X should be used within the sequence. The modified amino acids will be distinguished by their position in the sequence.") + nTerminalModificationId_field: IdentifierModel = Field(default=None, alias="nTerminalModificationId", description="Unique identifier for molecular fragment modification based on the ISO 11238 Substance ID.") + nTerminalModification_field: stringModel = Field(default=None, alias="nTerminalModification", description="The name of the fragment modified at the N-terminal of the SubstanceProtein shall be specified.") + cTerminalModificationId_field: IdentifierModel = Field(default=None, alias="cTerminalModificationId", description="Unique identifier for molecular fragment modification based on the ISO 11238 Substance ID.") + cTerminalModification_field: stringModel = Field(default=None, alias="cTerminalModification", description="The modification at the C-terminal shall be specified.") + +class SubstanceReferenceInformationModel(BaseModel): + resourceType_field: str = "SubstanceReferenceInformation" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + comment_field: stringModel = Field(default=None, alias="comment", description="Todo.") + gene_field: List[SubstanceReferenceInformation_GeneModel] = Field(default_factory=list, alias="gene", description="Todo.") + geneElement_field: List[SubstanceReferenceInformation_GeneElementModel] = Field(default_factory=list, alias="geneElement", description="Todo.") + target_field: List[SubstanceReferenceInformation_TargetModel] = Field(default_factory=list, alias="target", description="Todo.") + +class SubstanceReferenceInformation_GeneModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + geneSequenceOrigin_field: CodeableConceptModel = Field(default=None, alias="geneSequenceOrigin", description="Todo.") + gene_field: CodeableConceptModel = Field(default=None, alias="gene", description="Todo.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Todo.") + +class SubstanceReferenceInformation_GeneElementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Todo.") + element_field: IdentifierModel = Field(default=None, alias="element", description="Todo.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Todo.") + +class SubstanceReferenceInformation_TargetModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + target_field: IdentifierModel = Field(default=None, alias="target", description="Todo.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Todo.") + interaction_field: CodeableConceptModel = Field(default=None, alias="interaction", description="Todo.") + organism_field: CodeableConceptModel = Field(default=None, alias="organism", description="Todo.") + organismType_field: CodeableConceptModel = Field(default=None, alias="organismType", description="Todo.") + amountQuantity_field: QuantityModel = Field(default=None, alias="amountQuantity", description="Todo.") + amountRange_field: RangeModel = Field(default=None, alias="amountRange", description="Todo.") + amountType_field: CodeableConceptModel = Field(default=None, alias="amountType", description="Todo.") + source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Todo.") + +class SubstanceSourceMaterialModel(BaseModel): + resourceType_field: str = "SubstanceSourceMaterial" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sourceMaterialClass_field: CodeableConceptModel = Field(default=None, alias="sourceMaterialClass", description="General high level classification of the source material specific to the origin of the material.") + sourceMaterialType_field: CodeableConceptModel = Field(default=None, alias="sourceMaterialType", description="The type of the source material shall be specified based on a controlled vocabulary. For vaccines, this subclause refers to the class of infectious agent.") + sourceMaterialState_field: CodeableConceptModel = Field(default=None, alias="sourceMaterialState", description="The state of the source material when extracted.") + organismId_field: IdentifierModel = Field(default=None, alias="organismId", description="The unique identifier associated with the source material parent organism shall be specified.") + organismName_field: stringModel = Field(default=None, alias="organismName", description="The organism accepted Scientific name shall be provided based on the organism taxonomy.") + parentSubstanceId_field: List[IdentifierModel] = Field(default_factory=list, alias="parentSubstanceId", description="The parent of the herbal drug Ginkgo biloba, Leaf is the substance ID of the substance (fresh) of Ginkgo biloba L. or Ginkgo biloba L. (Whole plant).") + parentSubstanceName_field: List[stringModel] = Field(default_factory=list, alias="parentSubstanceName", description="The parent substance of the Herbal Drug, or Herbal preparation.") + countryOfOrigin_field: List[CodeableConceptModel] = Field(default_factory=list, alias="countryOfOrigin", description="The country where the plant material is harvested or the countries where the plasma is sourced from as laid down in accordance with the Plasma Master File. For “Plasma-derived substances” the attribute country of origin provides information about the countries used for the manufacturing of the Cryopoor plama or Crioprecipitate.") + geographicalLocation_field: List[stringModel] = Field(default_factory=list, alias="geographicalLocation", description="The place/region where the plant is harvested or the places/regions where the animal source material has its habitat.") + developmentStage_field: CodeableConceptModel = Field(default=None, alias="developmentStage", description="Stage of life for animals, plants, insects and microorganisms. This information shall be provided only when the substance is significantly different in these stages (e.g. foetal bovine serum).") + fractionDescription_field: List[SubstanceSourceMaterial_FractionDescriptionModel] = Field(default_factory=list, alias="fractionDescription", description="Many complex materials are fractions of parts of plants, animals, or minerals. Fraction elements are often necessary to define both Substances and Specified Group 1 Substances. For substances derived from Plants, fraction information will be captured at the Substance information level ( . Oils, Juices and Exudates). Additional information for Extracts, such as extraction solvent composition, will be captured at the Specified Substance Group 1 information level. For plasma-derived products fraction information will be captured at the Substance and the Specified Substance Group 1 levels.") + organism_field: SubstanceSourceMaterial_OrganismModel = Field(default=None, alias="organism", description="This subclause describes the organism which the substance is derived from. For vaccines, the parent organism shall be specified based on these subclause elements. As an example, full taxonomy will be described for the Substance Name: ., Leaf.") + partDescription_field: List[SubstanceSourceMaterial_PartDescriptionModel] = Field(default_factory=list, alias="partDescription", description="To do.") + +class SubstanceSourceMaterial_FractionDescriptionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + fraction_field: stringModel = Field(default=None, alias="fraction", description="This element is capturing information about the fraction of a plant part, or human plasma for fractionation.") + materialType_field: CodeableConceptModel = Field(default=None, alias="materialType", description="The specific type of the material constituting the component. For Herbal preparations the particulars of the extracts (liquid/dry) is described in Specified Substance Group 1.") + +class SubstanceSourceMaterial_OrganismModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + family_field: CodeableConceptModel = Field(default=None, alias="family", description="The family of an organism shall be specified.") + genus_field: CodeableConceptModel = Field(default=None, alias="genus", description="The genus of an organism shall be specified; refers to the Latin epithet of the genus element of the plant/animal scientific name; it is present in names for genera, species and infraspecies.") + species_field: CodeableConceptModel = Field(default=None, alias="species", description="The species of an organism shall be specified; refers to the Latin epithet of the species of the plant/animal; it is present in names for species and infraspecies.") + intraspecificType_field: CodeableConceptModel = Field(default=None, alias="intraspecificType", description="The Intraspecific type of an organism shall be specified.") + intraspecificDescription_field: stringModel = Field(default=None, alias="intraspecificDescription", description="The intraspecific description of an organism shall be specified based on a controlled vocabulary. For Influenza Vaccine, the intraspecific description shall contain the syntax of the antigen in line with the WHO convention.") + author_field: List[SubstanceSourceMaterial_AuthorModel] = Field(default_factory=list, alias="author", description="4.9.13.6.1 Author type (Conditional).") + hybrid_field: SubstanceSourceMaterial_HybridModel = Field(default=None, alias="hybrid", description="4.9.13.8.1 Hybrid species maternal organism ID (Optional).") + organismGeneral_field: SubstanceSourceMaterial_OrganismGeneralModel = Field(default=None, alias="organismGeneral", description="4.9.13.7.1 Kingdom (Conditional).") + +class SubstanceSourceMaterial_AuthorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + authorType_field: CodeableConceptModel = Field(default=None, alias="authorType", description="The type of author of an organism species shall be specified. The parenthetical author of an organism species refers to the first author who published the plant/animal name (of any rank). The primary author of an organism species refers to the first author(s), who validly published the plant/animal name.") + authorDescription_field: stringModel = Field(default=None, alias="authorDescription", description="The author of an organism species shall be specified. The author year of an organism shall also be specified when applicable; refers to the year in which the first author(s) published the infraspecific plant/animal name (of any rank).") + +class SubstanceSourceMaterial_HybridModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + maternalOrganismId_field: stringModel = Field(default=None, alias="maternalOrganismId", description="The identifier of the maternal species constituting the hybrid organism shall be specified based on a controlled vocabulary. For plants, the parents aren’t always known, and it is unlikely that it will be known which is maternal and which is paternal.") + maternalOrganismName_field: stringModel = Field(default=None, alias="maternalOrganismName", description="The name of the maternal species constituting the hybrid organism shall be specified. For plants, the parents aren’t always known, and it is unlikely that it will be known which is maternal and which is paternal.") + paternalOrganismId_field: stringModel = Field(default=None, alias="paternalOrganismId", description="The identifier of the paternal species constituting the hybrid organism shall be specified based on a controlled vocabulary.") + paternalOrganismName_field: stringModel = Field(default=None, alias="paternalOrganismName", description="The name of the paternal species constituting the hybrid organism shall be specified.") + hybridType_field: CodeableConceptModel = Field(default=None, alias="hybridType", description="The hybrid type of an organism shall be specified.") + +class SubstanceSourceMaterial_OrganismGeneralModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + kingdom_field: CodeableConceptModel = Field(default=None, alias="kingdom", description="The kingdom of an organism shall be specified.") + phylum_field: CodeableConceptModel = Field(default=None, alias="phylum", description="The phylum of an organism shall be specified.") + class_field: CodeableConceptModel = Field(default=None, alias="class", description="The class of an organism shall be specified.") + order_field: CodeableConceptModel = Field(default=None, alias="order", description="The order of an organism shall be specified,.") + +class SubstanceSourceMaterial_PartDescriptionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + part_field: CodeableConceptModel = Field(default=None, alias="part", description="Entity of anatomical origin of source material within an organism.") + partLocation_field: CodeableConceptModel = Field(default=None, alias="partLocation", description="The detailed anatomic location when the part can be extracted from different anatomical locations of the organism. Multiple alternative locations may apply.") + +class SupplyDeliveryModel(BaseModel): + resourceType_field: str = "SupplyDelivery" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the supply delivery event that is used to identify it across multiple disparate systems.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this event.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the dispense event.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="A link to a resource representing the person whom the delivered item is for.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates the type of supply being provided. Examples include: Medication, Device, Biologically Derived Product.") + suppliedItem_field: List[SupplyDelivery_SuppliedItemModel] = Field(default_factory=list, alias="suppliedItem", description="The item that is being delivered or has been supplied.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date or time(s) the activity occurred.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The date or time(s) the activity occurred.") + supplier_field: ReferenceModel = Field(default=None, alias="supplier", description="The individual or organization responsible for supplying the delivery.") + destination_field: ReferenceModel = Field(default=None, alias="destination", description="Identification of the facility/location where the delivery was shipped to.") + receiver_field: List[ReferenceModel] = Field(default_factory=list, alias="receiver", description="Identifies the individual or organization that received the delivery.") + +class SupplyDelivery_SuppliedItemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of the item that has been supplied. Unit of measure may be included.") + itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="Identifies the medication, substance, device or biologically derived product being supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.") + itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="Identifies the medication, substance, device or biologically derived product being supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.") + +class SupplyRequestModel(BaseModel): + resourceType_field: str = "SupplyRequest" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") + status_field: codeModel = Field(default=None, alias="status", description="Status of the supply request.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Plan/proposal/order fulfilled by this request.") + category_field: CodeableConceptModel = Field(default=None, alias="category", description="Category of supply, e.g. central, non-stock, etc. This is used to support work flows associated with the supply process.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly this SupplyRequest should be addressed with respect to other requests.") + deliverFor_field: ReferenceModel = Field(default=None, alias="deliverFor", description="The patient to whom the supply will be given or for whom they will be used.") + item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.") + quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount that is being ordered of the indicated item.") + parameter_field: List[SupplyRequest_ParameterModel] = Field(default_factory=list, alias="parameter", description="Specific parameters for the ordered item. For example, the size of the indicated item.") + occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="When the request should be fulfilled.") + occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="When the request should be fulfilled.") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="When the request was made.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The device, practitioner, etc. who initiated the request.") + supplier_field: List[ReferenceModel] = Field(default_factory=list, alias="supplier", description="Who is intended to fulfill the request.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason why the supply item was requested.") + deliverFrom_field: ReferenceModel = Field(default=None, alias="deliverFrom", description="Where the supply is expected to come from.") + deliverTo_field: ReferenceModel = Field(default=None, alias="deliverTo", description="Where the supply is destined to go.") + +class SupplyRequest_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code or string that identifies the device detail being asserted.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the device detail.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the device detail.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the device detail.") + +class TaskModel(BaseModel): + resourceType_field: str = "Task" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The business identifier for this task.") + instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.") + instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="BasedOn refers to a higher-level authorization that triggered the creation of the task. It references a request resource such as a ServiceRequest, MedicationRequest, CarePlan, etc. which is distinct from the request resource the task is seeking to fulfill. This latter resource is referenced by focus. For example, based on a CarePlan (= basedOn), a task is created to fulfill a ServiceRequest ( = focus ) to collect a specimen from a patient.") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Task and Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="Task that this particular task is part of.") + status_field: codeModel = Field(default=None, alias="status", description="The current status of the task.") + statusReason_field: CodeableReferenceModel = Field(default=None, alias="statusReason", description="An explanation as to why this task is held, failed, was refused, etc.") + businessStatus_field: CodeableConceptModel = Field(default=None, alias="businessStatus", description="Contains business-specific nuances of the business state.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Task should be addressed with respect to other requests.") + doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true indicates that the Task is asking for the specified action to *not* occur.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A name or code (or both) briefly describing what the task involves.") + description_field: stringModel = Field(default=None, alias="description", description="A free-text description of what is to be performed.") + focus_field: ReferenceModel = Field(default=None, alias="focus", description="The request being fulfilled or the resource being manipulated (changed, suspended, etc.) by this task.") + for_field: ReferenceModel = Field(default=None, alias="for", description="The entity who benefits from the performance of the service specified in the task (e.g., the patient).") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was created.") + requestedPeriod_field: PeriodModel = Field(default=None, alias="requestedPeriod", description="Indicates the start and/or end of the period of time when completion of the task is desired to take place.") + executionPeriod_field: PeriodModel = Field(default=None, alias="executionPeriod", description="Identifies the time action was first taken against the task (start) and/or the time final action was taken against the task prior to marking it as completed (end).") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="The date and time this task was created.") + lastModified_field: dateTimeModel = Field(default=None, alias="lastModified", description="The date and time of last modification to this task.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The creator of the task.") + requestedPerformer_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="requestedPerformer", description="The kind of participant or specific participant that should perform the task.") + owner_field: ReferenceModel = Field(default=None, alias="owner", description="Party responsible for managing task execution.") + performer_field: List[Task_PerformerModel] = Field(default_factory=list, alias="performer", description="The entity who performed the requested task.") + location_field: ReferenceModel = Field(default=None, alias="location", description="Principal physical location where this task is performed.") + reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A description, code, or reference indicating why this task needs to be performed.") + insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Task.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Free-text information captured about the task as it progresses.") + relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the task.") + restriction_field: Task_RestrictionModel = Field(default=None, alias="restriction", description="If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.") + input_field: List[Task_InputModel] = Field(default_factory=list, alias="input", description="Additional information that may be needed in the execution of the task.") + output_field: List[Task_OutputModel] = Field(default_factory=list, alias="output", description="Outputs produced by the Task.") + +class Task_PerformerModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + function_field: CodeableConceptModel = Field(default=None, alias="function", description="A code or description of the performer of the task.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="The actor or entity who performed the task.") + +class Task_RestrictionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + repetitions_field: positiveIntModel = Field(default=None, alias="repetitions", description="Indicates the number of times the requested action should occur.") + period_field: PeriodModel = Field(default=None, alias="period", description="The time-period for which fulfillment is sought. This must fall within the overall time period authorized in the referenced request. E.g. ServiceRequest.occurance[x].") + recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.") + +class Task_InputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code or description indicating how the input is intended to be used as part of the task execution.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the input parameter as a basic type.") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the input parameter as a basic type.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the input parameter as a basic type.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the input parameter as a basic type.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the input parameter as a basic type.") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the input parameter as a basic type.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the input parameter as a basic type.") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the input parameter as a basic type.") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the input parameter as a basic type.") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the input parameter as a basic type.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the input parameter as a basic type.") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the input parameter as a basic type.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the input parameter as a basic type.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the input parameter as a basic type.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the input parameter as a basic type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the input parameter as a basic type.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the input parameter as a basic type.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the input parameter as a basic type.") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the input parameter as a basic type.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the input parameter as a basic type.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the input parameter as a basic type.") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the input parameter as a basic type.") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the input parameter as a basic type.") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the input parameter as a basic type.") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the input parameter as a basic type.") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the input parameter as a basic type.") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the input parameter as a basic type.") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the input parameter as a basic type.") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the input parameter as a basic type.") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the input parameter as a basic type.") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the input parameter as a basic type.") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the input parameter as a basic type.") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the input parameter as a basic type.") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the input parameter as a basic type.") + +class Task_OutputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The name of the Output parameter.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the Output parameter as a basic type.") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the Output parameter as a basic type.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the Output parameter as a basic type.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the Output parameter as a basic type.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the Output parameter as a basic type.") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the Output parameter as a basic type.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the Output parameter as a basic type.") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the Output parameter as a basic type.") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the Output parameter as a basic type.") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the Output parameter as a basic type.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the Output parameter as a basic type.") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the Output parameter as a basic type.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the Output parameter as a basic type.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the Output parameter as a basic type.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the Output parameter as a basic type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the Output parameter as a basic type.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the Output parameter as a basic type.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the Output parameter as a basic type.") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the Output parameter as a basic type.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the Output parameter as a basic type.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the Output parameter as a basic type.") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the Output parameter as a basic type.") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the Output parameter as a basic type.") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the Output parameter as a basic type.") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the Output parameter as a basic type.") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the Output parameter as a basic type.") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the Output parameter as a basic type.") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the Output parameter as a basic type.") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the Output parameter as a basic type.") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the Output parameter as a basic type.") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the Output parameter as a basic type.") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the Output parameter as a basic type.") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the Output parameter as a basic type.") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the Output parameter as a basic type.") + +class TerminologyCapabilitiesModel(BaseModel): + resourceType_field: str = "TerminologyCapabilities" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this terminology capabilities when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this terminology capabilities when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the terminology capabilities.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this terminology capabilities. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the terminology capabilities was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the terminology capabilities changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the terminology capabilities.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate terminology capabilities instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the terminology capabilities is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this terminology capabilities is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + kind_field: codeModel = Field(default=None, alias="kind", description="The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).") + software_field: TerminologyCapabilities_SoftwareModel = Field(default=None, alias="software", description="Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation.") + implementation_field: TerminologyCapabilities_ImplementationModel = Field(default=None, alias="implementation", description="Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program.") + lockedDate_field: booleanModel = Field(default=None, alias="lockedDate", description="Whether the server supports lockedDate.") + codeSystem_field: List[TerminologyCapabilities_CodeSystemModel] = Field(default_factory=list, alias="codeSystem", description="Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource.") + expansion_field: TerminologyCapabilities_ExpansionModel = Field(default=None, alias="expansion", description="Information about the [ValueSet/$expand](valueset-operation-expand.html) operation.") + codeSearch_field: codeModel = Field(default=None, alias="codeSearch", description="The degree to which the server supports the code search parameter on ValueSet, if it is supported.") + validateCode_field: TerminologyCapabilities_ValidateCodeModel = Field(default=None, alias="validateCode", description="Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation.") + translation_field: TerminologyCapabilities_TranslationModel = Field(default=None, alias="translation", description="Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation.") + closure_field: TerminologyCapabilities_ClosureModel = Field(default=None, alias="closure", description="Whether the $closure operation is supported.") + +class TerminologyCapabilities_SoftwareModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Name the software is known by.") + version_field: stringModel = Field(default=None, alias="version", description="The version identifier for the software covered by this statement.") + +class TerminologyCapabilities_ImplementationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: stringModel = Field(default=None, alias="description", description="Information about the specific installation that this terminology capability statement relates to.") + url_field: urlModel = Field(default=None, alias="url", description="An absolute base URL for the implementation.") + +class TerminologyCapabilities_CodeSystemModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + uri_field: canonicalModel = Field(default=None, alias="uri", description="Canonical identifier for the code system, represented as a URI.") + version_field: List[TerminologyCapabilities_VersionModel] = Field(default_factory=list, alias="version", description="For the code system, a list of versions that are supported by the server.") + content_field: codeModel = Field(default=None, alias="content", description="The extent of the content of the code system (the concepts and codes it defines) are represented in this resource instance.") + subsumption_field: booleanModel = Field(default=None, alias="subsumption", description="True if subsumption is supported for this version of the code system.") + +class TerminologyCapabilities_VersionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: stringModel = Field(default=None, alias="code", description="For version-less code systems, there should be a single version with no identifier.") + isDefault_field: booleanModel = Field(default=None, alias="isDefault", description="If this is the default version for this code system.") + compositional_field: booleanModel = Field(default=None, alias="compositional", description="If the compositional grammar defined by the code system is supported.") + language_field: List[codeModel] = Field(default_factory=list, alias="language", description="Language Displays supported.") + filter_field: List[TerminologyCapabilities_FilterModel] = Field(default_factory=list, alias="filter", description="Filter Properties supported.") + property_field: List[codeModel] = Field(default_factory=list, alias="property", description="Properties supported for $lookup.") + +class TerminologyCapabilities_FilterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Code of the property supported.") + op_field: List[codeModel] = Field(default_factory=list, alias="op", description="Operations supported for the property.") + +class TerminologyCapabilities_ExpansionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + hierarchical_field: booleanModel = Field(default=None, alias="hierarchical", description="Whether the server can return nested value sets.") + paging_field: booleanModel = Field(default=None, alias="paging", description="Whether the server supports paging on expansion.") + incomplete_field: booleanModel = Field(default=None, alias="incomplete", description="True if requests for incomplete expansions are allowed.") + parameter_field: List[TerminologyCapabilities_ParameterModel] = Field(default_factory=list, alias="parameter", description="Supported expansion parameter.") + textFilter_field: markdownModel = Field(default=None, alias="textFilter", description="Documentation about text searching works.") + +class TerminologyCapabilities_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: codeModel = Field(default=None, alias="name", description="Name of the supported expansion parameter.") + documentation_field: stringModel = Field(default=None, alias="documentation", description="Description of support for parameter.") + +class TerminologyCapabilities_ValidateCodeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + translations_field: booleanModel = Field(default=None, alias="translations", description="Whether translations are validated.") + +class TerminologyCapabilities_TranslationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + needsMap_field: booleanModel = Field(default=None, alias="needsMap", description="Whether the client must identify the map.") + +class TerminologyCapabilities_ClosureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + translation_field: booleanModel = Field(default=None, alias="translation", description="If cross-system closure is supported.") + +class TestPlanModel(BaseModel): + resourceType_field: str = "TestPlan" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this test plan when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this test plan is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the test plan is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this test plan when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the test plan when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the test plan author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the test plan. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the test plan.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this test plan. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this test plan is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the test plan was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the test plan changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the test plan.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the test plan from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate test plan instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the test plan is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this test plan is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the test plan and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the test plan. The short copyright declaration (e.g. (c) '2015+ xyz organization' should be sent in the copyrightLabel element.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The category of the Test Plan - can be acceptance, unit, performance, etc.") + scope_field: List[ReferenceModel] = Field(default_factory=list, alias="scope", description="What is being tested with this Test Plan - a conformance resource, or narrative criteria, or an external reference...") + testTools_field: markdownModel = Field(default=None, alias="testTools", description="A description of test tools to be used in the test plan.") + dependency_field: List[TestPlan_DependencyModel] = Field(default_factory=list, alias="dependency", description="The required criteria to execute the test plan - e.g. preconditions, previous tests...") + exitCriteria_field: markdownModel = Field(default=None, alias="exitCriteria", description="The threshold or criteria for the test plan to be considered successfully executed - narrative.") + testCase_field: List[TestPlan_TestCaseModel] = Field(default_factory=list, alias="testCase", description="The individual test cases that are part of this plan, when they they are made explicit.") + +class TestPlan_DependencyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="A textual description of the criterium - what is needed for the dependency to be considered met.") + predecessor_field: ReferenceModel = Field(default=None, alias="predecessor", description="Predecessor test plans - those that are expected to be successfully performed as a dependency for the execution of this test plan.") + +class TestPlan_TestCaseModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + sequence_field: integerModel = Field(default=None, alias="sequence", description="Sequence of test case - an ordinal number that indicates the order for the present test case in the test plan.") + scope_field: List[ReferenceModel] = Field(default_factory=list, alias="scope", description="The scope or artifact covered by the case, when the individual test case is associated with a testable artifact.") + dependency_field: List[TestPlan_Dependency1Model] = Field(default_factory=list, alias="dependency", description="The required criteria to execute the test case - e.g. preconditions, previous tests.") + testRun_field: List[TestPlan_TestRunModel] = Field(default_factory=list, alias="testRun", description="The actual test to be executed.") + testData_field: List[TestPlan_TestDataModel] = Field(default_factory=list, alias="testData", description="The test data used in the test case.") + assertion_field: List[TestPlan_AssertionModel] = Field(default_factory=list, alias="assertion", description="The test assertions - the expectations of test results from the execution of the test case.") + +class TestPlan_Dependency1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + description_field: markdownModel = Field(default=None, alias="description", description="Description of the criteria.") + predecessor_field: ReferenceModel = Field(default=None, alias="predecessor", description="Link to predecessor test plans.") + +class TestPlan_TestRunModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + narrative_field: markdownModel = Field(default=None, alias="narrative", description="The narrative description of the tests.") + script_field: TestPlan_ScriptModel = Field(default=None, alias="script", description="The test cases in a structured language e.g. gherkin, Postman, or FHIR TestScript.") + +class TestPlan_ScriptModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The language for the test cases e.g. 'gherkin', 'testscript'.") + sourceReference_field: ReferenceModel = Field(default=None, alias="sourceReference", description="The actual content of the cases - references to TestScripts or externally defined content.") + +class TestPlan_TestDataModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodingModel = Field(default=None, alias="type", description="The type of test data description, e.g. 'synthea'.") + content_field: ReferenceModel = Field(default=None, alias="content", description="The actual test resources when they exist.") + sourceReference_field: ReferenceModel = Field(default=None, alias="sourceReference", description="Pointer to a definition of test resources - narrative or structured e.g. synthetic data generation, etc.") + +class TestPlan_AssertionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The test assertion type - this can be used to group assertions as 'required' or 'optional', or can be used for other classification of the assertion.") + object_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="object", description="The focus or object of the assertion i.e. a resource.") + result_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="result", description="The test assertion - the expected outcome from the test case execution.") + +class TestReportModel(BaseModel): + resourceType_field: str = "TestReport" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifier for the TestReport assigned for external purposes outside the context of FHIR.") + name_field: stringModel = Field(default=None, alias="name", description="A free text natural language name identifying the executed TestReport.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of this test report.") + testScript_field: canonicalModel = Field(default=None, alias="testScript", description="Ideally this is an absolute URL that is used to identify the version-specific TestScript that was executed, matching the `TestScript.url`.") + result_field: codeModel = Field(default=None, alias="result", description="The overall result from the execution of the TestScript.") + score_field: decimalModel = Field(default=None, alias="score", description="The final score (percentage of tests passed) resulting from the execution of the TestScript.") + tester_field: stringModel = Field(default=None, alias="tester", description="Name of the tester producing this report (Organization or individual).") + issued_field: dateTimeModel = Field(default=None, alias="issued", description="When the TestScript was executed and this TestReport was generated.") + participant_field: List[TestReport_ParticipantModel] = Field(default_factory=list, alias="participant", description="A participant in the test execution, either the execution engine, a client, or a server.") + setup_field: TestReport_SetupModel = Field(default=None, alias="setup", description="The results of the series of required setup operations before the tests were executed.") + test_field: List[TestReport_TestModel] = Field(default_factory=list, alias="test", description="A test executed from the test script.") + teardown_field: TestReport_TeardownModel = Field(default=None, alias="teardown", description="The results of the series of operations required to clean up after all the tests were executed (successfully or otherwise).") + +class TestReport_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: codeModel = Field(default=None, alias="type", description="The type of participant.") + uri_field: uriModel = Field(default=None, alias="uri", description="The uri of the participant. An absolute URL is preferred.") + display_field: stringModel = Field(default=None, alias="display", description="The display name of the participant.") + +class TestReport_SetupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + action_field: List[TestReport_ActionModel] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") + +class TestReport_ActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + operation_field: TestReport_OperationModel = Field(default=None, alias="operation", description="The operation performed.") + assert_field: TestReport_AssertModel = Field(default=None, alias="assert", description="The results of the assertion performed on the previous operations.") + +class TestReport_OperationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + result_field: codeModel = Field(default=None, alias="result", description="The result of this operation.") + message_field: markdownModel = Field(default=None, alias="message", description="An explanatory message associated with the result.") + detail_field: uriModel = Field(default=None, alias="detail", description="A link to further details on the result.") + +class TestReport_AssertModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + result_field: codeModel = Field(default=None, alias="result", description="The result of this assertion.") + message_field: markdownModel = Field(default=None, alias="message", description="An explanatory message associated with the result.") + detail_field: stringModel = Field(default=None, alias="detail", description="A link to further details on the result.") + requirement_field: List[TestReport_RequirementModel] = Field(default_factory=list, alias="requirement", description="Links or references providing traceability to the testing requirements for this assert.") + +class TestReport_RequirementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + +class TestReport_TestModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The name of this test used for tracking/logging purposes by test engines.") + description_field: stringModel = Field(default=None, alias="description", description="A short description of the test used by test engines for tracking and reporting purposes.") + action_field: List[TestReport_Action1Model] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") + +class TestReport_Action1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + operation_field: TestReport_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") + assert_field: TestReport_AssertModel = Field(default=None, alias="assert", description="The results of the assertion performed on the previous operations.") + +class TestReport_TeardownModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + action_field: List[TestReport_Action2Model] = Field(default_factory=list, alias="action", description="The teardown action will only contain an operation.") + +class TestReport_Action2Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + operation_field: TestReport_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") + +class TestScriptModel(BaseModel): + resourceType_field: str = "TestScript" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this test script when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this test script is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the test script is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this test script when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the test script when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the test script author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the test script. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the test script.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this test script. Enables tracking the life-cycle of the content.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this test script is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the test script was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the test script changes.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the test script.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the test script from a consumer's perspective.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate test script instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the test script is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this test script is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the test script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the test script.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + origin_field: List[TestScript_OriginModel] = Field(default_factory=list, alias="origin", description="An abstract server used in operations within this test script in the origin element.") + destination_field: List[TestScript_DestinationModel] = Field(default_factory=list, alias="destination", description="An abstract server used in operations within this test script in the destination element.") + metadata_field: TestScript_MetadataModel = Field(default=None, alias="metadata", description="The required capability must exist and are assumed to function correctly on the FHIR server being tested.") + scope_field: List[TestScript_ScopeModel] = Field(default_factory=list, alias="scope", description="The scope indicates a conformance artifact that is tested by the test(s) within this test case and the expectation of the test outcome(s) as well as the intended test phase inclusion.") + fixture_field: List[TestScript_FixtureModel] = Field(default_factory=list, alias="fixture", description="Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.") + profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="Reference to the profile to be used for validation.") + variable_field: List[TestScript_VariableModel] = Field(default_factory=list, alias="variable", description="Variable is set based either on element value in response body or on header field value in the response headers.") + setup_field: TestScript_SetupModel = Field(default=None, alias="setup", description="A series of required setup operations before tests are executed.") + test_field: List[TestScript_TestModel] = Field(default_factory=list, alias="test", description="A test in this script.") + teardown_field: TestScript_TeardownModel = Field(default=None, alias="teardown", description="A series of operations required to clean up after all the tests are executed (successfully or otherwise).") + +class TestScript_OriginModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + index_field: integerModel = Field(default=None, alias="index", description="Abstract name given to an origin server in this test script. The name is provided as a number starting at 1.") + profile_field: CodingModel = Field(default=None, alias="profile", description="The type of origin profile the test system supports.") + url_field: urlModel = Field(default=None, alias="url", description="The explicit url path of the origin server used in this test script.") + +class TestScript_DestinationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + index_field: integerModel = Field(default=None, alias="index", description="Abstract name given to a destination server in this test script. The name is provided as a number starting at 1.") + profile_field: CodingModel = Field(default=None, alias="profile", description="The type of destination profile the test system supports.") + url_field: urlModel = Field(default=None, alias="url", description="The explicit url path of the destination server used in this test script.") + +class TestScript_MetadataModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + link_field: List[TestScript_LinkModel] = Field(default_factory=list, alias="link", description="A link to the FHIR specification that this test is covering.") + capability_field: List[TestScript_CapabilityModel] = Field(default_factory=list, alias="capability", description="Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.") + +class TestScript_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="URL to a particular requirement or feature within the FHIR specification.") + description_field: stringModel = Field(default=None, alias="description", description="Short description of the link.") + +class TestScript_CapabilityModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + required_field: booleanModel = Field(default=None, alias="required", description="Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.") + validated_field: booleanModel = Field(default=None, alias="validated", description="Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.") + description_field: stringModel = Field(default=None, alias="description", description="Description of the capabilities that this test script is requiring the server to support.") + origin_field: List[integerModel] = Field(default_factory=list, alias="origin", description="Which origin server these requirements apply to.") + destination_field: integerModel = Field(default=None, alias="destination", description="Which server these requirements apply to.") + link_field: List[uriModel] = Field(default_factory=list, alias="link", description="Links to the FHIR specification that describes this interaction and the resources involved in more detail.") + capabilities_field: canonicalModel = Field(default=None, alias="capabilities", description="Minimum capabilities required of server for test script to execute successfully. If server does not meet at a minimum the referenced capability statement, then all tests in this script are skipped.") + +class TestScript_ScopeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + artifact_field: canonicalModel = Field(default=None, alias="artifact", description="The specific conformance artifact being tested. The canonical reference can be version-specific.") + conformance_field: CodeableConceptModel = Field(default=None, alias="conformance", description="The expectation of whether the test must pass for the system to be considered conformant with the artifact: required - all tests are expected to pass, optional - all test are expected to pass but non-pass status may be allowed, strict - all tests are expected to pass and warnings are treated as a failure.") + phase_field: CodeableConceptModel = Field(default=None, alias="phase", description="The phase of testing for this artifact: unit - development / implementation phase, integration - internal system to system phase, production - live system to system phase (Note, this may involve pii/phi data).") + +class TestScript_FixtureModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + autocreate_field: booleanModel = Field(default=None, alias="autocreate", description="Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.") + autodelete_field: booleanModel = Field(default=None, alias="autodelete", description="Whether or not to implicitly delete the fixture during teardown. If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.") + resource_field: ReferenceModel = Field(default=None, alias="resource", description="Reference to the resource (containing the contents of the resource needed for operations). This is allowed to be a Parameters resource.") + +class TestScript_VariableModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Descriptive name for this variable.") + defaultValue_field: stringModel = Field(default=None, alias="defaultValue", description="A default, hard-coded, or user-defined value for this variable.") + description_field: stringModel = Field(default=None, alias="description", description="A free text natural language description of the variable and its purpose.") + expression_field: stringModel = Field(default=None, alias="expression", description="The FHIRPath expression for a specific value to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified.") + headerField_field: stringModel = Field(default=None, alias="headerField", description="Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.") + hint_field: stringModel = Field(default=None, alias="hint", description="Displayable text string with hint help information to the user when entering a default value.") + path_field: stringModel = Field(default=None, alias="path", description="XPath or JSONPath to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified.") + sourceId_field: idModel = Field(default=None, alias="sourceId", description="Fixture to evaluate the XPath/JSONPath expression or the headerField against within this variable.") + +class TestScript_SetupModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + action_field: List[TestScript_ActionModel] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") + +class TestScript_ActionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + operation_field: TestScript_OperationModel = Field(default=None, alias="operation", description="The operation to perform.") + assert_field: TestScript_AssertModel = Field(default=None, alias="assert", description="Evaluates the results of previous operations to determine if the server under test behaves appropriately.") + +class TestScript_OperationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodingModel = Field(default=None, alias="type", description="Server interaction or operation type.") + resource_field: uriModel = Field(default=None, alias="resource", description="The type of the FHIR resource. See the [resource list](resourcelist.html). Data type of uri is needed when non-HL7 artifacts are identified.") + label_field: stringModel = Field(default=None, alias="label", description="The label would be used for tracking/logging purposes by test engines.") + description_field: stringModel = Field(default=None, alias="description", description="The description would be used by test engines for tracking and reporting purposes.") + accept_field: codeModel = Field(default=None, alias="accept", description="The mime-type to use for RESTful operation in the 'Accept' header.") + contentType_field: codeModel = Field(default=None, alias="contentType", description="The mime-type to use for RESTful operation in the 'Content-Type' header.") + destination_field: integerModel = Field(default=None, alias="destination", description="The server where the request message is destined for. Must be one of the server numbers listed in TestScript.destination section.") + encodeRequestUrl_field: booleanModel = Field(default=None, alias="encodeRequestUrl", description="Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.") + method_field: codeModel = Field(default=None, alias="method", description="The HTTP method the test engine MUST use for this operation regardless of any other operation details.") + origin_field: integerModel = Field(default=None, alias="origin", description="The server where the request message originates from. Must be one of the server numbers listed in TestScript.origin section.") + params_field: stringModel = Field(default=None, alias="params", description="Path plus parameters after [type]. Used to set parts of the request URL explicitly.") + requestHeader_field: List[TestScript_RequestHeaderModel] = Field(default_factory=list, alias="requestHeader", description="Header elements would be used to set HTTP headers.") + requestId_field: idModel = Field(default=None, alias="requestId", description="The fixture id (maybe new) to map to the request.") + responseId_field: idModel = Field(default=None, alias="responseId", description="The fixture id (maybe new) to map to the response.") + sourceId_field: idModel = Field(default=None, alias="sourceId", description="The id of the fixture used as the body of a PUT or POST request.") + targetId_field: idModel = Field(default=None, alias="targetId", description="Id of fixture used for extracting the [id], [type], and [vid] for GET requests.") + url_field: stringModel = Field(default=None, alias="url", description="Complete request URL.") + +class TestScript_RequestHeaderModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + field_field: stringModel = Field(default=None, alias="field", description="The HTTP header field e.g. Accept.") + value_field: stringModel = Field(default=None, alias="value", description="The value of the header e.g. application/fhir+xml.") + +class TestScript_AssertModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + label_field: stringModel = Field(default=None, alias="label", description="The label would be used for tracking/logging purposes by test engines.") + description_field: stringModel = Field(default=None, alias="description", description="The description would be used by test engines for tracking and reporting purposes.") + direction_field: codeModel = Field(default=None, alias="direction", description="The direction to use for the assertion.") + compareToSourceId_field: stringModel = Field(default=None, alias="compareToSourceId", description="Id of the source fixture used as the contents to be evaluated by either the source/expression or sourceId/path definition.") + compareToSourceExpression_field: stringModel = Field(default=None, alias="compareToSourceExpression", description="The FHIRPath expression for a specific value to evaluate against the source fixture. When compareToSourceId is defined, either compareToSourceExpression or compareToSourcePath must be defined, but not both.") + compareToSourcePath_field: stringModel = Field(default=None, alias="compareToSourcePath", description="XPath or JSONPath expression to evaluate against the source fixture. When compareToSourceId is defined, either compareToSourceExpression or compareToSourcePath must be defined, but not both.") + contentType_field: codeModel = Field(default=None, alias="contentType", description="The mime-type contents to compare against the request or response message 'Content-Type' header.") + defaultManualCompletion_field: codeModel = Field(default=None, alias="defaultManualCompletion", description="The default manual completion outcome applied to this assertion.") + expression_field: stringModel = Field(default=None, alias="expression", description="The FHIRPath expression to be evaluated against the request or response message contents - HTTP headers and payload.") + headerField_field: stringModel = Field(default=None, alias="headerField", description="The HTTP header field name e.g. 'Location'.") + minimumId_field: stringModel = Field(default=None, alias="minimumId", description="The ID of a fixture. Asserts that the response contains at a minimum the fixture specified by minimumId.") + navigationLinks_field: booleanModel = Field(default=None, alias="navigationLinks", description="Whether or not the test execution performs validation on the bundle navigation links.") + operator_field: codeModel = Field(default=None, alias="operator", description="The operator type defines the conditional behavior of the assert.") + path_field: stringModel = Field(default=None, alias="path", description="The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server.") + requestMethod_field: codeModel = Field(default=None, alias="requestMethod", description="The request method or HTTP operation code to compare against that used by the client system under test.") + requestURL_field: stringModel = Field(default=None, alias="requestURL", description="The value to use in a comparison against the request URL path string.") + resource_field: uriModel = Field(default=None, alias="resource", description="The type of the resource. See the [resource list](resourcelist.html).") + response_field: codeModel = Field(default=None, alias="response", description="continue | switchingProtocols | okay | created | accepted | nonAuthoritativeInformation | noContent | resetContent | partialContent | multipleChoices | movedPermanently | found | seeOther | notModified | useProxy | temporaryRedirect | permanentRedirect | badRequest | unauthorized | paymentRequired | forbidden | notFound | methodNotAllowed | notAcceptable | proxyAuthenticationRequired | requestTimeout | conflict | gone | lengthRequired | preconditionFailed | contentTooLarge | uriTooLong | unsupportedMediaType | rangeNotSatisfiable | expectationFailed | misdirectedRequest | unprocessableContent | upgradeRequired | internalServerError | notImplemented | badGateway | serviceUnavailable | gatewayTimeout | httpVersionNotSupported.") + responseCode_field: stringModel = Field(default=None, alias="responseCode", description="The value of the HTTP response code to be tested.") + sourceId_field: idModel = Field(default=None, alias="sourceId", description="Fixture to evaluate the XPath/JSONPath expression or the headerField against.") + stopTestOnFail_field: booleanModel = Field(default=None, alias="stopTestOnFail", description="Whether or not the current test execution will stop on failure for this assert.") + validateProfileId_field: idModel = Field(default=None, alias="validateProfileId", description="The ID of the Profile to validate against.") + value_field: stringModel = Field(default=None, alias="value", description="The value to compare to.") + warningOnly_field: booleanModel = Field(default=None, alias="warningOnly", description="Whether or not the test execution will produce a warning only on error for this assert.") + requirement_field: List[TestScript_RequirementModel] = Field(default_factory=list, alias="requirement", description="Links or references providing traceability to the testing requirements for this assert.") + +class TestScript_RequirementModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + +class TestScript_TestModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="The name of this test used for tracking/logging purposes by test engines.") + description_field: stringModel = Field(default=None, alias="description", description="A short description of the test used by test engines for tracking and reporting purposes.") + action_field: List[TestScript_Action1Model] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") + +class TestScript_Action1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + operation_field: TestScript_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") + assert_field: TestScript_AssertModel = Field(default=None, alias="assert", description="Evaluates the results of previous operations to determine if the server under test behaves appropriately.") + +class TestScript_TeardownModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + action_field: List[TestScript_Action2Model] = Field(default_factory=list, alias="action", description="The teardown action will only contain an operation.") + +class TestScript_Action2Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + operation_field: TestScript_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") + +class TransportModel(BaseModel): + resourceType_field: str = "Transport" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the transport event that is used to identify it across multiple disparate systems.") + instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.") + instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="BasedOn refers to a higher-level authorization that triggered the creation of the transport. It references a request resource such as a ServiceRequest or Transport, which is distinct from the request resource the Transport is seeking to fulfill. This latter resource is referenced by FocusOn. For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab.") + groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") + partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") + status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the transport event.") + statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="An explanation as to why this transport is held, failed, was refused, etc.") + intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.") + priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Transport should be addressed with respect to other requests.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="A name or code (or both) briefly describing what the transport involves.") + description_field: stringModel = Field(default=None, alias="description", description="A free-text description of what is to be performed.") + focus_field: ReferenceModel = Field(default=None, alias="focus", description="The request being actioned or the resource being manipulated by this transport.") + for_field: ReferenceModel = Field(default=None, alias="for", description="The entity who benefits from the performance of the service specified in the transport (e.g., the patient).") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this transport was created.") + completionTime_field: dateTimeModel = Field(default=None, alias="completionTime", description="Identifies the completion time of the event (the occurrence).") + authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="The date and time this transport was created.") + lastModified_field: dateTimeModel = Field(default=None, alias="lastModified", description="The date and time of last modification to this transport.") + requester_field: ReferenceModel = Field(default=None, alias="requester", description="The creator of the transport.") + performerType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="performerType", description="The kind of participant that should perform the transport.") + owner_field: ReferenceModel = Field(default=None, alias="owner", description="Individual organization or Device currently responsible for transport execution.") + location_field: ReferenceModel = Field(default=None, alias="location", description="Principal physical location where this transport is performed.") + insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Free-text information captured about the transport as it progresses.") + relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport.") + restriction_field: Transport_RestrictionModel = Field(default=None, alias="restriction", description="If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.") + input_field: List[Transport_InputModel] = Field(default_factory=list, alias="input", description="Additional information that may be needed in the execution of the transport.") + output_field: List[Transport_OutputModel] = Field(default_factory=list, alias="output", description="Outputs produced by the Transport.") + requestedLocation_field: ReferenceModel = Field(default=None, alias="requestedLocation", description="The desired or final location for the transport.") + currentLocation_field: ReferenceModel = Field(default=None, alias="currentLocation", description="The current location for the entity to be transported.") + reason_field: CodeableReferenceModel = Field(default=None, alias="reason", description="A resource reference indicating why this transport needs to be performed.") + history_field: ReferenceModel = Field(default=None, alias="history", description="The transport event prior to this one.") + +class Transport_RestrictionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + repetitions_field: positiveIntModel = Field(default=None, alias="repetitions", description="Indicates the number of times the requested action should occur.") + period_field: PeriodModel = Field(default=None, alias="period", description="Over what time-period is fulfillment sought.") + recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.") + +class Transport_InputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code or description indicating how the input is intended to be used as part of the transport execution.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the input parameter as a basic type.") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the input parameter as a basic type.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the input parameter as a basic type.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the input parameter as a basic type.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the input parameter as a basic type.") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the input parameter as a basic type.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the input parameter as a basic type.") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the input parameter as a basic type.") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the input parameter as a basic type.") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the input parameter as a basic type.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the input parameter as a basic type.") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the input parameter as a basic type.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the input parameter as a basic type.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the input parameter as a basic type.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the input parameter as a basic type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the input parameter as a basic type.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the input parameter as a basic type.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the input parameter as a basic type.") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the input parameter as a basic type.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the input parameter as a basic type.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the input parameter as a basic type.") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the input parameter as a basic type.") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the input parameter as a basic type.") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the input parameter as a basic type.") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the input parameter as a basic type.") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the input parameter as a basic type.") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the input parameter as a basic type.") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the input parameter as a basic type.") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the input parameter as a basic type.") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the input parameter as a basic type.") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the input parameter as a basic type.") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the input parameter as a basic type.") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the input parameter as a basic type.") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the input parameter as a basic type.") + +class Transport_OutputModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="The name of the Output parameter.") + valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the Output parameter as a basic type.") + valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the Output parameter as a basic type.") + valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the Output parameter as a basic type.") + valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the Output parameter as a basic type.") + valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the Output parameter as a basic type.") + valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the Output parameter as a basic type.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the Output parameter as a basic type.") + valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the Output parameter as a basic type.") + valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the Output parameter as a basic type.") + valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the Output parameter as a basic type.") + valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the Output parameter as a basic type.") + valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the Output parameter as a basic type.") + valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the Output parameter as a basic type.") + valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the Output parameter as a basic type.") + valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the Output parameter as a basic type.") + valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the Output parameter as a basic type.") + valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the Output parameter as a basic type.") + valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the Output parameter as a basic type.") + valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the Output parameter as a basic type.") + valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the Output parameter as a basic type.") + valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the Output parameter as a basic type.") + valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the Output parameter as a basic type.") + valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the Output parameter as a basic type.") + valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the Output parameter as a basic type.") + valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the Output parameter as a basic type.") + valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the Output parameter as a basic type.") + valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the Output parameter as a basic type.") + valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the Output parameter as a basic type.") + valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the Output parameter as a basic type.") + valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the Output parameter as a basic type.") + valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the Output parameter as a basic type.") + valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the Output parameter as a basic type.") + valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the Output parameter as a basic type.") + valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the Output parameter as a basic type.") + +class ValueSetModel(BaseModel): + resourceType_field: str = "ValueSet" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this value set is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the value set is stored on different servers.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance.") + version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") + versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which ValueSet is more current.") + name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation.") + title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the value set.") + status_field: codeModel = Field(default=None, alias="status", description="The status of this value set. Enables tracking the life-cycle of the content. The status of the value set applies to the value set definition (ValueSet.compose) and the associated ValueSet metadata. Expansions do not have a state.") + experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") + date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the value set metadata or content logical definition (.compose) was created or revised.") + publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the value set.") + contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") + description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the value set from a consumer's perspective. The textual description specifies the span of meanings for concepts to be included within the Value Set Expansion, and also may specify the intended use and limitations of the Value Set.") + useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate value set instances.") + jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the value set is intended to be used.") + purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this value set is needed and why it has been designed as it has.") + copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set.") + copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") + approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") + lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") + effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the ValueSet content was or is planned to be in active use.") + topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the ValueSet. Topics provide a high-level categorization as well as keywords for the ValueSet that can be useful for filtering and searching.") + author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the ValueSet.") + editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the ValueSet.") + reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ValueSet.") + endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the ValueSet for use in some setting.") + relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") + immutable_field: booleanModel = Field(default=None, alias="immutable", description="If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change.") + compose_field: ValueSet_ComposeModel = Field(default=None, alias="compose", description="A set of criteria that define the contents of the value set by including or excluding codes selected from the specified code system(s) that the value set draws from. This is also known as the Content Logical Definition (CLD).") + expansion_field: ValueSet_ExpansionModel = Field(default=None, alias="expansion", description="A value set can also be expanded, where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed.") + scope_field: ValueSet_ScopeModel = Field(default=None, alias="scope", description="Description of the semantic space the Value Set Expansion is intended to cover and should further clarify the text in ValueSet.description.") + +class ValueSet_ComposeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + lockedDate_field: dateModel = Field(default=None, alias="lockedDate", description="The Locked Date is the effective date that is used to determine the version of all referenced Code Systems and Value Set Definitions included in the compose that are not already tied to a specific version.") + inactive_field: booleanModel = Field(default=None, alias="inactive", description="Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable $expand parameters (but generally, inactive codes would be expected to be included).") + include_field: List[ValueSet_IncludeModel] = Field(default_factory=list, alias="include", description="Include one or more codes from a code system or other value set(s).") + exclude_field: List[ValueSet_IncludeModel] = Field(default_factory=list, alias="exclude", description="Exclude one or more codes from the value set based on code system filters and/or other value sets.") + property_field: List[stringModel] = Field(default_factory=list, alias="property", description="A property to return in the expansion, if the client doesn't ask for any particular properties. May be either a code from the code system definition (convenient) or a the formal URI that refers to the property. The special value '*' means all properties known to the server.") + +class ValueSet_IncludeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + system_field: uriModel = Field(default=None, alias="system", description="An absolute URI which is the code system from which the selected codes come from.") + version_field: stringModel = Field(default=None, alias="version", description="The version of the code system that the codes are selected from, or the special version '*' for all versions.") + concept_field: List[ValueSet_ConceptModel] = Field(default_factory=list, alias="concept", description="Specifies a concept to be included or excluded.") + filter_field: List[ValueSet_FilterModel] = Field(default_factory=list, alias="filter", description="Select concepts by specifying a matching criterion based on the properties (including relationships) defined by the system, or on filters defined by the system. If multiple filters are specified within the include, they SHALL all be true.") + valueSet_field: List[canonicalModel] = Field(default_factory=list, alias="valueSet", description="Selects the concepts found in this value set (based on its value set definition). This is an absolute URI that is a reference to ValueSet.url. If multiple value sets are specified this includes the intersection of the contents of all of the referenced value sets.") + copyright_field: stringModel = Field(default=None, alias="copyright", description="A copyright statement for the specific code system asserted by the containing ValueSet.compose.include element's system value (if the associated ValueSet.compose.include.version element is not present); or the code system and version combination (if the associated ValueSet.compose.include.version element is present).") + +class ValueSet_ConceptModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="Specifies a code for the concept to be included or excluded.") + display_field: stringModel = Field(default=None, alias="display", description="The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system.") + designation_field: List[ValueSet_DesignationModel] = Field(default_factory=list, alias="designation", description="Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc.") + +class ValueSet_DesignationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: codeModel = Field(default=None, alias="language", description="The language this designation is defined for.") + use_field: CodingModel = Field(default=None, alias="use", description="A code that represents types of uses of designations.") + additionalUse_field: List[CodingModel] = Field(default_factory=list, alias="additionalUse", description="Additional codes that detail how this designation would be used, if there is more than one use.") + value_field: stringModel = Field(default=None, alias="value", description="The text value for this designation.") + +class ValueSet_FilterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + property_field: codeModel = Field(default=None, alias="property", description="A code that identifies a property or a filter defined in the code system.") + op_field: codeModel = Field(default=None, alias="op", description="The kind of operation to perform as a part of the filter criteria.") + value_field: stringModel = Field(default=None, alias="value", description="The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value (if the filter represents a property defined in CodeSystem) or of the system filter value (if the filter represents a filter defined in CodeSystem) when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'.") + +class ValueSet_ExpansionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: uriModel = Field(default=None, alias="identifier", description="An identifier that uniquely identifies this expansion of the valueset, based on a unique combination of the provided parameters, the system default parameters, and the underlying system code system versions etc. Systems may re-use the same identifier as long as those factors remain the same, and the expansion is the same, but are not required to do so. This is a business identifier.") + next_field: uriModel = Field(default=None, alias="next", description="As per paging Search results, the next URLs are opaque to the client, have no dictated structure, and only the server understands them.") + timestamp_field: dateTimeModel = Field(default=None, alias="timestamp", description="The time at which the expansion was produced by the expanding system.") + total_field: integerModel = Field(default=None, alias="total", description="The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter.") + offset_field: integerModel = Field(default=None, alias="offset", description="If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL NOT be present.") + parameter_field: List[ValueSet_ParameterModel] = Field(default_factory=list, alias="parameter", description="A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion.") + property_field: List[ValueSet_PropertyModel] = Field(default_factory=list, alias="property", description="A property defines an additional slot through which additional information can be provided about a concept.") + contains_field: List[ValueSet_ContainsModel] = Field(default_factory=list, alias="contains", description="The codes that are contained in the value set expansion.") + +class ValueSet_ParameterModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + name_field: stringModel = Field(default=None, alias="name", description="Name of the input parameter to the $expand operation; may be a server-assigned name for additional default or other server-supplied parameters used to control the expansion process.") + +class ValueSet_PropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify the property. The code is used in ValueSet.expansion.contains.property.code.") + uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code system.") + +class ValueSet_ContainsModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + system_field: uriModel = Field(default=None, alias="system", description="An absolute URI which is the code system in which the code for this item in the expansion is defined.") + abstract_field: booleanModel = Field(default=None, alias="abstract", description="If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value.") + inactive_field: booleanModel = Field(default=None, alias="inactive", description="If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data. It might not be known or specified whether a concept is inactive (and it may depend on the context of use).") + version_field: stringModel = Field(default=None, alias="version", description="The version of the code system from this code was taken. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.") + code_field: codeModel = Field(default=None, alias="code", description="The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set.") + display_field: stringModel = Field(default=None, alias="display", description="The recommended display for this item in the expansion.") + designation_field: List[ValueSet_DesignationModel] = Field(default_factory=list, alias="designation", description="Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation.") + property_field: List[ValueSet_Property1Model] = Field(default_factory=list, alias="property", description="A property value for this concept.") + contains_field: List[ValueSet_ContainsModel] = Field(default_factory=list, alias="contains", description="Other codes and entries contained under this entry in the hierarchy.") + +class ValueSet_Property1Model(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is a reference to ValueSet.expansion.property.code.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this property.") + subProperty_field: List[ValueSet_SubPropertyModel] = Field(default_factory=list, alias="subProperty", description="A subproperty value for this concept.") + +class ValueSet_SubPropertyModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + code_field: codeModel = Field(default=None, alias="code", description="A code that is a reference to ValueSet.expansion.property.code.") + valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this subproperty.") + +class ValueSet_ScopeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + inclusionCriteria_field: stringModel = Field(default=None, alias="inclusionCriteria", description="Criteria describing which concepts or codes should be included and why.") + exclusionCriteria_field: stringModel = Field(default=None, alias="exclusionCriteria", description="Criteria describing which concepts or codes should be excluded and why.") + +class VerificationResultModel(BaseModel): + resourceType_field: str = "VerificationResult" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + target_field: List[ReferenceModel] = Field(default_factory=list, alias="target", description="A resource that was validated.") + targetLocation_field: List[stringModel] = Field(default_factory=list, alias="targetLocation", description="The fhirpath location(s) within the resource that was validated.") + need_field: CodeableConceptModel = Field(default=None, alias="need", description="The frequency with which the target must be validated (none; initial; periodic).") + status_field: codeModel = Field(default=None, alias="status", description="The validation status of the target (attested; validated; in process; requires revalidation; validation failed; revalidation failed).") + statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="When the validation status was updated.") + validationType_field: CodeableConceptModel = Field(default=None, alias="validationType", description="What the target is validated against (nothing; primary source; multiple sources).") + validationProcess_field: List[CodeableConceptModel] = Field(default_factory=list, alias="validationProcess", description="The primary process by which the target is validated (edit check; value set; primary source; multiple sources; standalone; in context).") + frequency_field: TimingModel = Field(default=None, alias="frequency", description="Frequency of revalidation.") + lastPerformed_field: dateTimeModel = Field(default=None, alias="lastPerformed", description="The date/time validation was last completed (including failed validations).") + nextScheduled_field: dateModel = Field(default=None, alias="nextScheduled", description="The date when target is next validated, if appropriate.") + failureAction_field: CodeableConceptModel = Field(default=None, alias="failureAction", description="The result if validation fails (fatal; warning; record only; none).") + primarySource_field: List[VerificationResult_PrimarySourceModel] = Field(default_factory=list, alias="primarySource", description="Information about the primary source(s) involved in validation.") + attestation_field: VerificationResult_AttestationModel = Field(default=None, alias="attestation", description="Information about the entity attesting to information.") + validator_field: List[VerificationResult_ValidatorModel] = Field(default_factory=list, alias="validator", description="Information about the entity validating information.") + +class VerificationResult_PrimarySourceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + who_field: ReferenceModel = Field(default=None, alias="who", description="Reference to the primary source.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Type of primary source (License Board; Primary Education; Continuing Education; Postal Service; Relationship owner; Registration Authority; legal source; issuing source; authoritative source).") + communicationMethod_field: List[CodeableConceptModel] = Field(default_factory=list, alias="communicationMethod", description="Method for communicating with the primary source (manual; API; Push).") + validationStatus_field: CodeableConceptModel = Field(default=None, alias="validationStatus", description="Status of the validation of the target against the primary source (successful; failed; unknown).") + validationDate_field: dateTimeModel = Field(default=None, alias="validationDate", description="When the target was validated against the primary source.") + canPushUpdates_field: CodeableConceptModel = Field(default=None, alias="canPushUpdates", description="Ability of the primary source to push updates/alerts (yes; no; undetermined).") + pushTypeAvailable_field: List[CodeableConceptModel] = Field(default_factory=list, alias="pushTypeAvailable", description="Type of alerts/updates the primary source can send (specific requested changes; any changes; as defined by source).") + +class VerificationResult_AttestationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + who_field: ReferenceModel = Field(default=None, alias="who", description="The individual or organization attesting to information.") + onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="When the who is asserting on behalf of another (organization or individual).") + communicationMethod_field: CodeableConceptModel = Field(default=None, alias="communicationMethod", description="The method by which attested information was submitted/retrieved (manual; API; Push).") + date_field: dateModel = Field(default=None, alias="date", description="The date the information was attested to.") + sourceIdentityCertificate_field: stringModel = Field(default=None, alias="sourceIdentityCertificate", description="A digital identity certificate associated with the attestation source.") + proxyIdentityCertificate_field: stringModel = Field(default=None, alias="proxyIdentityCertificate", description="A digital identity certificate associated with the proxy entity submitting attested information on behalf of the attestation source.") + proxySignature_field: SignatureModel = Field(default=None, alias="proxySignature", description="Signed assertion by the proxy entity indicating that they have the right to submit attested information on behalf of the attestation source.") + sourceSignature_field: SignatureModel = Field(default=None, alias="sourceSignature", description="Signed assertion by the attestation source that they have attested to the information.") + +class VerificationResult_ValidatorModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="Reference to the organization validating information.") + identityCertificate_field: stringModel = Field(default=None, alias="identityCertificate", description="A digital identity certificate associated with the validator.") + attestationSignature_field: SignatureModel = Field(default=None, alias="attestationSignature", description="Signed assertion by the validator that they have validated the information.") + +class VisionPrescriptionModel(BaseModel): + resourceType_field: str = "VisionPrescription" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this vision prescription.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") + created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") + patient_field: ReferenceModel = Field(default=None, alias="patient", description="A resource reference to the person to whom the vision prescription applies.") + encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="A reference to a resource that identifies the particular occurrence of contact between patient and health care provider during which the prescription was issued.") + dateWritten_field: dateTimeModel = Field(default=None, alias="dateWritten", description="The date (and perhaps time) when the prescription was written.") + prescriber_field: ReferenceModel = Field(default=None, alias="prescriber", description="The healthcare professional responsible for authorizing the prescription.") + lensSpecification_field: List[VisionPrescription_LensSpecificationModel] = Field(default_factory=list, alias="lensSpecification", description="Contain the details of the individual lens specifications and serves as the authorization for the fullfillment by certified professionals.") + +class VisionPrescription_LensSpecificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + product_field: CodeableConceptModel = Field(default=None, alias="product", description="Identifies the type of vision correction product which is required for the patient.") + eye_field: codeModel = Field(default=None, alias="eye", description="The eye for which the lens specification applies.") + sphere_field: decimalModel = Field(default=None, alias="sphere", description="Lens power measured in dioptres (0.25 units).") + cylinder_field: decimalModel = Field(default=None, alias="cylinder", description="Power adjustment for astigmatism measured in dioptres (0.25 units).") + axis_field: integerModel = Field(default=None, alias="axis", description="Adjustment for astigmatism measured in integer degrees.") + prism_field: List[VisionPrescription_PrismModel] = Field(default_factory=list, alias="prism", description="Allows for adjustment on two axis.") + add_field: decimalModel = Field(default=None, alias="add", description="Power adjustment for multifocal lenses measured in dioptres (0.25 units).") + power_field: decimalModel = Field(default=None, alias="power", description="Contact lens power measured in dioptres (0.25 units).") + backCurve_field: decimalModel = Field(default=None, alias="backCurve", description="Back curvature measured in millimetres.") + diameter_field: decimalModel = Field(default=None, alias="diameter", description="Contact lens diameter measured in millimetres.") + duration_field: QuantityModel = Field(default=None, alias="duration", description="The recommended maximum wear period for the lens.") + color_field: stringModel = Field(default=None, alias="color", description="Special color or pattern.") + brand_field: stringModel = Field(default=None, alias="brand", description="Brand recommendations or restrictions.") + note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Notes for special requirements such as coatings and lens materials.") + +class VisionPrescription_PrismModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + amount_field: decimalModel = Field(default=None, alias="amount", description="Amount of prism to compensate for eye alignment in fractional units.") + base_field: codeModel = Field(default=None, alias="base", description="The relative base, or reference lens edge, for the prism.") + +class Narrative_status(Enum): + pass + + +class Identifier_use(Enum): + pass + + +class Quantity_comparator(Enum): + pass + + +class Duration_comparator(Enum): + pass + + +class Distance_comparator(Enum): + pass + + +class Count_comparator(Enum): + pass + + +class Age_comparator(Enum): + pass + + +class HumanName_use(Enum): + pass + + +class Address_use(Enum): + pass + + +class Address_type(Enum): + pass + + +class ContactPoint_system(Enum): + pass + + +class ContactPoint_use(Enum): + pass + + +class Timing_Repeat_durationUnit(Enum): + pass + + +class Timing_Repeat_periodUnit(Enum): + pass + + +class Contributor_type(Enum): + pass + + +class DataRequirement_Sort_direction(Enum): + pass + + +class RelatedArtifact_type(Enum): + pass + + +class TriggerDefinition_type(Enum): + pass + + +class ElementDefinition_Slicing_rules(Enum): + pass + + +class ElementDefinition_Discriminator_type(Enum): + pass + + +class ElementDefinition_Type_versioning(Enum): + pass + + +class ElementDefinition_Constraint_severity(Enum): + pass + + +class ElementDefinition_Binding_strength(Enum): + pass + + +HumanNameModel.model_rebuild() diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_pydantic_base_generators.py b/tests/test_pydantic_base_generators.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_pydantic_complex_field_models.py b/tests/test_pydantic_complex_field_models.py new file mode 100644 index 0000000..1246e77 --- /dev/null +++ b/tests/test_pydantic_complex_field_models.py @@ -0,0 +1,37 @@ +from pydantic import ValidationError +import pytest +from src.pydantic_models import booleanModel, canonicalModel, codeModel + +def test_boolean_valid(): + data = {"boolean": "true"} + result = booleanModel(**data) + assert result.boolean == "true" + +def test_boolean_invalid(): + data = {"boolean": "invalid"} + with pytest.raises(ValidationError): + booleanModel(**data) + +def test_canonical_valid(): + data = {"canonical": "https://example.com"} + result = canonicalModel(**data) + assert result.canonical == "https://example.com" + +def test_canonical_invalid(): + data = {"canonical": "invalid url"} + with pytest.raises(ValidationError): + canonicalModel(**data) + +def test_code_valid(): + data = {"code": "ABC123"} + result = codeModel(**data) + assert result.code == "ABC123" + +def test_code_invalid(): + data = {"code": "invalid code"} + with pytest.raises(ValidationError): + codeModel(**data) + +# Run the tests +if __name__ == "__main__": + pytest.main() \ No newline at end of file diff --git a/tests/test_pydantic_patient_generators.py b/tests/test_pydantic_patient_generators.py new file mode 100644 index 0000000..71d6331 --- /dev/null +++ b/tests/test_pydantic_patient_generators.py @@ -0,0 +1,27 @@ +from src.data_generator.patient_generator import PatientGenerator, HumanNameGenerator + + +def test_human_name_generator(): + # Create an instance of the HumanNameGenerator + generator = HumanNameGenerator() + + # Generate a human name + human_name = generator.generate() + + assert human_name is not None + + +def test_patient_data_generator(): + # Create an instance of the PatientDataGenerator + generator = PatientGenerator() + + # Generate patient data + patient_data = generator.generate() + + # Assert that the patient data is not empty + assert patient_data is not None + + # Assert that the patient data has the expected pydantic fields + assert patient_data.resourceType == "Patient" + assert patient_data.id_field is not None + assert patient_data.active_field is not None From 27e939305ac44baebd33b67529d0d73e7b8c6757 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Fri, 3 May 2024 16:50:48 +0100 Subject: [PATCH 05/24] modify generators --- healthchain/data_generator/base_generators.py | 2 +- healthchain/data_generator/data_generator.py | 42 - healthchain/pydantic_models.py | 12094 ---------------- 3 files changed, 1 insertion(+), 12137 deletions(-) delete mode 100644 healthchain/data_generator/data_generator.py delete mode 100644 healthchain/pydantic_models.py diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index c86f0e3..e040305 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -3,7 +3,7 @@ import random import string -from src.pydantic_models import booleanModel, canonicalModel, codeModel, dateModel, dateTimeModel, decimalModel, idModel, instantModel, integerModel, markdownModel, positiveIntModel, stringModel, timeModel, unsignedIntModel, uriModel, urlModel, uuidModel +from healthchain.fhir_resources.base_resources import booleanModel, canonicalModel, codeModel, dateModel, dateTimeModel, decimalModel, idModel, instantModel, integerModel, markdownModel, positiveIntModel, stringModel, timeModel, unsignedIntModel, uriModel, urlModel, uuidModel from faker import Faker faker = Faker() diff --git a/healthchain/data_generator/data_generator.py b/healthchain/data_generator/data_generator.py deleted file mode 100644 index f6b1446..0000000 --- a/healthchain/data_generator/data_generator.py +++ /dev/null @@ -1,42 +0,0 @@ - -from abc import ABC, abstractmethod -from pydantic import BaseModel -from faker import Faker -from src.data_generator.fhir_data import Patient, HumanName -from src.fhir_data import BaseLiterals -import random - -class AbstractDataGenerator(ABC): - @abstractmethod - def generate(self) -> BaseModel: - """Generate an instance of a Pydantic model.""" - pass - - -faker = Faker() - -class HumanNameGenerator(AbstractDataGenerator): - def generate(self) -> HumanName: - return HumanName( - family=faker.last_name(), - given=[faker.first_name()], - prefix=[faker.prefix()], - suffix=[faker.suffix() if random.random() < 0.001 else None] - ) - -class PatientGenerator(AbstractDataGenerator): - def generate(self) -> Patient: - return Patient( - id=faker.uuid4(), - active=faker.boolean(), - name=[HumanNameGenerator().generate()], - telecom=[{ - "system": faker.random_element(elements=("phone", "email")), - "value": faker.phone_number() if system == "phone" else faker.email(), - "use": faker.random_element(elements=("home", "work", "temp")), - "rank": faker.random_int(min=1, max=3) - }], - gender=faker.random_element(elements=(BaseLiterals.gender)), - ) - - diff --git a/healthchain/pydantic_models.py b/healthchain/pydantic_models.py deleted file mode 100644 index 67772aa..0000000 --- a/healthchain/pydantic_models.py +++ /dev/null @@ -1,12094 +0,0 @@ -from __future__ import annotations -from pydantic import BaseModel, Field, conint -from typing import List, Optional -from enum import Enum - -class ResourceListModel(Enum): - Account: stringModel = "#/definitions/Account" - ActivityDefinition: stringModel = "#/definitions/ActivityDefinition" - ActorDefinition: stringModel = "#/definitions/ActorDefinition" - AdministrableProductDefinition: stringModel = "#/definitions/AdministrableProductDefinition" - AdverseEvent: stringModel = "#/definitions/AdverseEvent" - AllergyIntolerance: stringModel = "#/definitions/AllergyIntolerance" - Appointment: stringModel = "#/definitions/Appointment" - AppointmentResponse: stringModel = "#/definitions/AppointmentResponse" - ArtifactAssessment: stringModel = "#/definitions/ArtifactAssessment" - AuditEvent: stringModel = "#/definitions/AuditEvent" - Basic: stringModel = "#/definitions/Basic" - Binary: stringModel = "#/definitions/Binary" - BiologicallyDerivedProduct: stringModel = "#/definitions/BiologicallyDerivedProduct" - BiologicallyDerivedProductDispense: stringModel = "#/definitions/BiologicallyDerivedProductDispense" - BodyStructure: stringModel = "#/definitions/BodyStructure" - Bundle: stringModel = "#/definitions/Bundle" - CapabilityStatement: stringModel = "#/definitions/CapabilityStatement" - CarePlan: stringModel = "#/definitions/CarePlan" - CareTeam: stringModel = "#/definitions/CareTeam" - ChargeItem: stringModel = "#/definitions/ChargeItem" - ChargeItemDefinition: stringModel = "#/definitions/ChargeItemDefinition" - Citation: stringModel = "#/definitions/Citation" - Claim: stringModel = "#/definitions/Claim" - ClaimResponse: stringModel = "#/definitions/ClaimResponse" - ClinicalImpression: stringModel = "#/definitions/ClinicalImpression" - ClinicalUseDefinition: stringModel = "#/definitions/ClinicalUseDefinition" - CodeSystem: stringModel = "#/definitions/CodeSystem" - Communication: stringModel = "#/definitions/Communication" - CommunicationRequest: stringModel = "#/definitions/CommunicationRequest" - CompartmentDefinition: stringModel = "#/definitions/CompartmentDefinition" - Composition: stringModel = "#/definitions/Composition" - ConceptMap: stringModel = "#/definitions/ConceptMap" - Condition: stringModel = "#/definitions/Condition" - ConditionDefinition: stringModel = "#/definitions/ConditionDefinition" - Consent: stringModel = "#/definitions/Consent" - Contract: stringModel = "#/definitions/Contract" - Coverage: stringModel = "#/definitions/Coverage" - CoverageEligibilityRequest: stringModel = "#/definitions/CoverageEligibilityRequest" - CoverageEligibilityResponse: stringModel = "#/definitions/CoverageEligibilityResponse" - DetectedIssue: stringModel = "#/definitions/DetectedIssue" - Device: stringModel = "#/definitions/Device" - DeviceAssociation: stringModel = "#/definitions/DeviceAssociation" - DeviceDefinition: stringModel = "#/definitions/DeviceDefinition" - DeviceDispense: stringModel = "#/definitions/DeviceDispense" - DeviceMetric: stringModel = "#/definitions/DeviceMetric" - DeviceRequest: stringModel = "#/definitions/DeviceRequest" - DeviceUsage: stringModel = "#/definitions/DeviceUsage" - DiagnosticReport: stringModel = "#/definitions/DiagnosticReport" - DocumentReference: stringModel = "#/definitions/DocumentReference" - Encounter: stringModel = "#/definitions/Encounter" - EncounterHistory: stringModel = "#/definitions/EncounterHistory" - Endpoint: stringModel = "#/definitions/Endpoint" - EnrollmentRequest: stringModel = "#/definitions/EnrollmentRequest" - EnrollmentResponse: stringModel = "#/definitions/EnrollmentResponse" - EpisodeOfCare: stringModel = "#/definitions/EpisodeOfCare" - EventDefinition: stringModel = "#/definitions/EventDefinition" - Evidence: stringModel = "#/definitions/Evidence" - EvidenceReport: stringModel = "#/definitions/EvidenceReport" - EvidenceVariable: stringModel = "#/definitions/EvidenceVariable" - ExampleScenario: stringModel = "#/definitions/ExampleScenario" - ExplanationOfBenefit: stringModel = "#/definitions/ExplanationOfBenefit" - FamilyMemberHistory: stringModel = "#/definitions/FamilyMemberHistory" - Flag: stringModel = "#/definitions/Flag" - FormularyItem: stringModel = "#/definitions/FormularyItem" - GenomicStudy: stringModel = "#/definitions/GenomicStudy" - Goal: stringModel = "#/definitions/Goal" - GraphDefinition: stringModel = "#/definitions/GraphDefinition" - Group: stringModel = "#/definitions/Group" - GuidanceResponse: stringModel = "#/definitions/GuidanceResponse" - HealthcareService: stringModel = "#/definitions/HealthcareService" - ImagingSelection: stringModel = "#/definitions/ImagingSelection" - ImagingStudy: stringModel = "#/definitions/ImagingStudy" - Immunization: stringModel = "#/definitions/Immunization" - ImmunizationEvaluation: stringModel = "#/definitions/ImmunizationEvaluation" - ImmunizationRecommendation: stringModel = "#/definitions/ImmunizationRecommendation" - ImplementationGuide: stringModel = "#/definitions/ImplementationGuide" - Ingredient: stringModel = "#/definitions/Ingredient" - InsurancePlan: stringModel = "#/definitions/InsurancePlan" - InventoryItem: stringModel = "#/definitions/InventoryItem" - InventoryReport: stringModel = "#/definitions/InventoryReport" - Invoice: stringModel = "#/definitions/Invoice" - Library: stringModel = "#/definitions/Library" - Linkage: stringModel = "#/definitions/Linkage" - List: stringModel = "#/definitions/List" - Location: stringModel = "#/definitions/Location" - ManufacturedItemDefinition: stringModel = "#/definitions/ManufacturedItemDefinition" - Measure: stringModel = "#/definitions/Measure" - MeasureReport: stringModel = "#/definitions/MeasureReport" - Medication: stringModel = "#/definitions/Medication" - MedicationAdministration: stringModel = "#/definitions/MedicationAdministration" - MedicationDispense: stringModel = "#/definitions/MedicationDispense" - MedicationKnowledge: stringModel = "#/definitions/MedicationKnowledge" - MedicationRequest: stringModel = "#/definitions/MedicationRequest" - MedicationStatement: stringModel = "#/definitions/MedicationStatement" - MedicinalProductDefinition: stringModel = "#/definitions/MedicinalProductDefinition" - MessageDefinition: stringModel = "#/definitions/MessageDefinition" - MessageHeader: stringModel = "#/definitions/MessageHeader" - MolecularSequence: stringModel = "#/definitions/MolecularSequence" - NamingSystem: stringModel = "#/definitions/NamingSystem" - NutritionIntake: stringModel = "#/definitions/NutritionIntake" - NutritionOrder: stringModel = "#/definitions/NutritionOrder" - NutritionProduct: stringModel = "#/definitions/NutritionProduct" - Observation: stringModel = "#/definitions/Observation" - ObservationDefinition: stringModel = "#/definitions/ObservationDefinition" - OperationDefinition: stringModel = "#/definitions/OperationDefinition" - OperationOutcome: stringModel = "#/definitions/OperationOutcome" - Organization: stringModel = "#/definitions/Organization" - OrganizationAffiliation: stringModel = "#/definitions/OrganizationAffiliation" - PackagedProductDefinition: stringModel = "#/definitions/PackagedProductDefinition" - Parameters: stringModel = "#/definitions/Parameters" - Patient: stringModel = "#/definitions/Patient" - PaymentNotice: stringModel = "#/definitions/PaymentNotice" - PaymentReconciliation: stringModel = "#/definitions/PaymentReconciliation" - Permission: stringModel = "#/definitions/Permission" - Person: stringModel = "#/definitions/Person" - PlanDefinition: stringModel = "#/definitions/PlanDefinition" - Practitioner: stringModel = "#/definitions/Practitioner" - PractitionerRole: stringModel = "#/definitions/PractitionerRole" - Procedure: stringModel = "#/definitions/Procedure" - Provenance: stringModel = "#/definitions/Provenance" - Questionnaire: stringModel = "#/definitions/Questionnaire" - QuestionnaireResponse: stringModel = "#/definitions/QuestionnaireResponse" - RegulatedAuthorization: stringModel = "#/definitions/RegulatedAuthorization" - RelatedPerson: stringModel = "#/definitions/RelatedPerson" - RequestOrchestration: stringModel = "#/definitions/RequestOrchestration" - Requirements: stringModel = "#/definitions/Requirements" - ResearchStudy: stringModel = "#/definitions/ResearchStudy" - ResearchSubject: stringModel = "#/definitions/ResearchSubject" - RiskAssessment: stringModel = "#/definitions/RiskAssessment" - Schedule: stringModel = "#/definitions/Schedule" - SearchParameter: stringModel = "#/definitions/SearchParameter" - ServiceRequest: stringModel = "#/definitions/ServiceRequest" - Slot: stringModel = "#/definitions/Slot" - Specimen: stringModel = "#/definitions/Specimen" - SpecimenDefinition: stringModel = "#/definitions/SpecimenDefinition" - StructureDefinition: stringModel = "#/definitions/StructureDefinition" - StructureMap: stringModel = "#/definitions/StructureMap" - Subscription: stringModel = "#/definitions/Subscription" - SubscriptionStatus: stringModel = "#/definitions/SubscriptionStatus" - SubscriptionTopic: stringModel = "#/definitions/SubscriptionTopic" - Substance: stringModel = "#/definitions/Substance" - SubstanceDefinition: stringModel = "#/definitions/SubstanceDefinition" - SubstanceNucleicAcid: stringModel = "#/definitions/SubstanceNucleicAcid" - SubstancePolymer: stringModel = "#/definitions/SubstancePolymer" - SubstanceProtein: stringModel = "#/definitions/SubstanceProtein" - SubstanceReferenceInformation: stringModel = "#/definitions/SubstanceReferenceInformation" - SubstanceSourceMaterial: stringModel = "#/definitions/SubstanceSourceMaterial" - SupplyDelivery: stringModel = "#/definitions/SupplyDelivery" - SupplyRequest: stringModel = "#/definitions/SupplyRequest" - Task: stringModel = "#/definitions/Task" - TerminologyCapabilities: stringModel = "#/definitions/TerminologyCapabilities" - TestPlan: stringModel = "#/definitions/TestPlan" - TestReport: stringModel = "#/definitions/TestReport" - TestScript: stringModel = "#/definitions/TestScript" - Transport: stringModel = "#/definitions/Transport" - ValueSet: stringModel = "#/definitions/ValueSet" - VerificationResult: stringModel = "#/definitions/VerificationResult" - VisionPrescription: stringModel = "#/definitions/VisionPrescription" - -class booleanModel(BaseModel): - boolean: str = Field(pattern=r'^true|false$') - - class Config: - schema_extra = { - "description": "Value of true or false" - } - - -class canonicalModel(BaseModel): - canonical: str = Field(pattern=r'^\S*$') - - class Config: - schema_extra = { - "description": "A URI that is a reference to a canonical URL on a FHIR resource" - } - - -class codeModel(BaseModel): - code: str = Field(pattern=r'^[^\s]+( [^\s]+)*$') - - class Config: - schema_extra = { - "description": "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents" - } - - -class dateModel(BaseModel): - date: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$') - - class Config: - schema_extra = { - "description": "A date or partial date (e.g. just year or year + month). There is no UTC offset. The format is a union of the schema types gYear, gYearMonth and date. Dates SHALL be valid dates." - } - - -class dateTimeModel(BaseModel): - dateTime: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$') - - class Config: - schema_extra = { - "description": "A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a UTC offset SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates." - } - - -class decimalModel(BaseModel): - decimal: float = Field(pattern=r'^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$') - - class Config: - schema_extra = { - "description": "A rational number with implicit precision" - } - - -class idModel(BaseModel): - id: str = Field(pattern=r'^[A-Za-z0-9\-\.]{1,64}$') - - class Config: - schema_extra = { - "description": "Any combination of letters, numerals, - and ., with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive." - } - - -class instantModel(BaseModel): - instant: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$') - - class Config: - schema_extra = { - "description": "An instant in time - known at least to the second" - } - - -class integerModel(BaseModel): - integer: float = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') - - class Config: - schema_extra = { - "description": "A whole number" - } - - -class integer64Model(BaseModel): - integer64: str = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') - - class Config: - schema_extra = { - "description": "A very large whole number" - } - - -class markdownModel(BaseModel): - markdown: str = Field(pattern=r'^^[\s\S]+$$') - - class Config: - schema_extra = { - "description": "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine" - } - - -class oidModel(BaseModel): - oid: str = Field(pattern=r'^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$') - - class Config: - schema_extra = { - "description": "An OID represented as a URI" - } - - -class positiveIntModel(BaseModel): - positiveInt: conint(gt=0) - - class Config: - schema_extra = { - "description": "An integer with a value that is positive (e.g. >0)" - } - - -class stringModel(BaseModel): - string: str = Field(pattern=r'^^[\s\S]+$$') - - class Config: - schema_extra = { - "description": "A sequence of Unicode characters" - } - - -class timeModel(BaseModel): - time: str = Field(pattern=r'^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$') - - class Config: - schema_extra = { - "description": "A time during the day, with no date specified" - } - - -class unsignedIntModel(BaseModel): - unsignedInt: float = Field(pattern=r'^[0]|([1-9][0-9]*)$') - - class Config: - schema_extra = { - "description": "An integer with a value that is not negative (e.g. >= 0)" - } - - -class uriModel(BaseModel): - uri: str = Field(pattern=r'^\S*$') - - class Config: - schema_extra = { - "description": "String of characters used to identify a name or a resource" - } - - -class urlModel(BaseModel): - url: str = Field(pattern=r'^\S*$') - - class Config: - schema_extra = { - "description": "A URI that is a literal reference" - } - - -class uuidModel(BaseModel): - uuid: str = Field(pattern=r'^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') - - class Config: - schema_extra = { - "description": "A UUID, represented as a URI" - } - - - -class ElementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - -class DataTypeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - -class PrimitiveTypeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - -class BackboneTypeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - -class ExtensionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - url_field: uriModel = Field(default=None, alias="url", description="Source of the definition for the extension code - a logical name or a URL.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).") - -class NarrativeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") - # div_field: xhtmlModel = Field(default=None, alias="div", description="The actual narrative content, a stripped down version of XHTML.") - -class AnnotationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - authorReference_field: ReferenceModel = Field(default=None, alias="authorReference", description="The individual responsible for making the annotation.") - time_field: dateTimeModel = Field(default=None, alias="time", description="Indicates when this particular annotation was made.") - text_field: markdownModel = Field(default=None, alias="text", description="The text of the annotation in markdown format.") - -class AttachmentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - contentType_field: codeModel = Field(default=None, alias="contentType", description="Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.") - language_field: codeModel = Field(default=None, alias="language", description="The human language of the content. The value can be any valid value according to BCP 47.") - data_field: stringModel = Field(default=None, alias="data", description="The actual data of the attachment - a sequence of bytes, base64 encoded.") - url_field: urlModel = Field(default=None, alias="url", description="A location where the data can be accessed.") - size_field: integer64Model = Field(default=None, alias="size", description="The number of bytes of data that make up this attachment (before base64 encoding, if that is done).") - hash_field: stringModel = Field(default=None, alias="hash", description="The calculated hash of the data using SHA-1. Represented using base64.") - title_field: stringModel = Field(default=None, alias="title", description="A label or set of text to display in place of the data.") - creation_field: dateTimeModel = Field(default=None, alias="creation", description="The date that the attachment was first created.") - height_field: positiveIntModel = Field(default=None, alias="height", description="Height of the image in pixels (photo/video).") - width_field: positiveIntModel = Field(default=None, alias="width", description="Width of the image in pixels (photo/video).") - frames_field: positiveIntModel = Field(default=None, alias="frames", description="The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.") - duration_field: decimalModel = Field(default=None, alias="duration", description="The duration of the recording in seconds - for audio and video.") - pages_field: positiveIntModel = Field(default=None, alias="pages", description="The number of pages when printed.") - -class IdentifierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.") - system_field: uriModel = Field(default=None, alias="system", description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.") - value_field: stringModel = Field(default=None, alias="value", description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which identifier is/was valid for use.") - assigner_field: ReferenceModel = Field(default=None, alias="assigner", description="Organization that issued/manages the identifier.") - -class CodeableConceptModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - coding_field: List[CodingModel] = Field(default_factory=list, alias="coding", description="A reference to a code defined by a terminology system.") - text_field: stringModel = Field(default=None, alias="text", description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.") - -class CodeableReferenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - concept_field: CodeableConceptModel = Field(default=None, alias="concept", description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a resource the provides exact details about the information being referenced.") - -class CodingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the code system that defines the meaning of the symbol in the code.") - version_field: stringModel = Field(default=None, alias="version", description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.") - code_field: codeModel = Field(default=None, alias="code", description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).") - display_field: stringModel = Field(default=None, alias="display", description="A representation of the meaning of the code in the system, following the rules of the system.") - userSelected_field: booleanModel = Field(default=None, alias="userSelected", description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).") - -class QuantityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") - # Quantity_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") - code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") - -class DurationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") - # Duration_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") - code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") - -class DistanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") - # Distance_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") - code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") - -class CountModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") - # Count_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") - code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") - -class MoneyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - value_field: decimalModel = Field(default=None, alias="value", description="Numerical value (with implicit precision).") - currency_field: codeModel = Field(default=None, alias="currency", description="ISO 4217 Currency Code.") - -class AgeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - value_field: decimalModel = Field(default=None, alias="value", description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.") - # Age_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field(default=None, alias="unit", description="A human-readable form of the unit.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the system that provides the coded form of the unit.") - code_field: codeModel = Field(default=None, alias="code", description="A computer processable form of the unit in some unit representation system.") - -class RangeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - low_field: QuantityModel = Field(default=None, alias="low", description="The low limit. The boundary is inclusive.") - high_field: QuantityModel = Field(default=None, alias="high", description="The high limit. The boundary is inclusive.") - -class PeriodModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - start_field: dateTimeModel = Field(default=None, alias="start", description="The start of the period. The boundary is inclusive.") - end_field: dateTimeModel = Field(default=None, alias="end", description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.") - -class RatioModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - numerator_field: QuantityModel = Field(default=None, alias="numerator", description="The value of the numerator.") - denominator_field: QuantityModel = Field(default=None, alias="denominator", description="The value of the denominator.") - -class RatioRangeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - lowNumerator_field: QuantityModel = Field(default=None, alias="lowNumerator", description="The value of the low limit numerator.") - highNumerator_field: QuantityModel = Field(default=None, alias="highNumerator", description="The value of the high limit numerator.") - denominator_field: QuantityModel = Field(default=None, alias="denominator", description="The value of the denominator.") - -class ReferenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - reference_field: stringModel = Field(default=None, alias="reference", description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.") - type_field: uriModel = Field(default=None, alias="type", description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.") - display_field: stringModel = Field(default=None, alias="display", description="Plain text narrative that identifies the resource in addition to the resource reference.") - -class SampledDataModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - origin_field: QuantityModel = Field(default=None, alias="origin", description="The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series.") - interval_field: decimalModel = Field(default=None, alias="interval", description="Amount of intervalUnits between samples, e.g. milliseconds for time-based sampling.") - intervalUnit_field: codeModel = Field(default=None, alias="intervalUnit", description="The measurement unit in which the sample interval is expressed.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A correction factor that is applied to the sampled data points before they are added to the origin.") - lowerLimit_field: decimalModel = Field(default=None, alias="lowerLimit", description="The lower limit of detection of the measured points. This is needed if any of the data points have the value L (lower than detection limit).") - upperLimit_field: decimalModel = Field(default=None, alias="upperLimit", description="The upper limit of detection of the measured points. This is needed if any of the data points have the value U (higher than detection limit).") - dimensions_field: positiveIntModel = Field(default=None, alias="dimensions", description="The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once.") - codeMap_field: canonicalModel = Field(default=None, alias="codeMap", description="Reference to ConceptMap that defines the codes used in the data.") - offsets_field: stringModel = Field(default=None, alias="offsets", description="A series of data points which are decimal values separated by a single space (character u20). The units in which the offsets are expressed are found in intervalUnit. The absolute point at which the measurements begin SHALL be conveyed outside the scope of this datatype, e.g. Observation.effectiveDateTime for a timing offset.") - data_field: stringModel = Field(default=None, alias="data", description="A series of data points which are decimal values or codes separated by a single space (character u20). The special codes E (error), L (below detection limit) and U (above detection limit) are also defined for used in place of decimal values.") - -class SignatureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - type_field: List[CodingModel] = Field(default_factory=list, alias="type", description="An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document.") - when_field: instantModel = Field(default=None, alias="when", description="When the digital signature was signed.") - who_field: ReferenceModel = Field(default=None, alias="who", description="A reference to an application-usable description of the identity that signed (e.g. the signature used their private key).") - onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="A reference to an application-usable description of the identity that is represented by the signature.") - targetFormat_field: codeModel = Field(default=None, alias="targetFormat", description="A mime type that indicates the technical format of the target resources signed by the signature.") - sigFormat_field: codeModel = Field(default=None, alias="sigFormat", description="A mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc.") - data_field: stringModel = Field(default=None, alias="data", description="The base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty.") - -class HumanNameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # HumanName_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for this name.") - text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.") - family_field: stringModel = Field(default=None, alias="family", description="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.") - given_field: List[stringModel] = Field(default_factory=list, alias="given", description="Given name.") - prefix_field: List[stringModel] = Field(default_factory=list, alias="prefix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.") - suffix_field: List[stringModel] = Field(default_factory=list, alias="suffix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.") - period_field: PeriodModel = Field(default=None, alias="period", description="Indicates the period of time when this name was valid for the named person.") - -class AddressModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # Address_use_field: useModel = Field(..., alias="use", description="The purpose of this address.") - # Address_type_field: typeModel = Field(..., alias="type", description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.") - text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.") - line_field: List[stringModel] = Field(default_factory=list, alias="line", description="This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.") - city_field: stringModel = Field(default=None, alias="city", description="The name of the city, town, suburb, village or other community or delivery center.") - district_field: stringModel = Field(default=None, alias="district", description="The name of the administrative area (county).") - state_field: stringModel = Field(default=None, alias="state", description="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).") - postalCode_field: stringModel = Field(default=None, alias="postalCode", description="A postal code designating a region defined by the postal service.") - country_field: stringModel = Field(default=None, alias="country", description="Country - a nation as commonly understood or generally accepted.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period when address was/is in use.") - -class ContactPointModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # ContactPoint_system_field: systemModel = Field(..., alias="system", description="Telecommunications form for contact point - what communications system is required to make use of the contact.") - value_field: stringModel = Field(default=None, alias="value", description="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).") - # ContactPoint_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for the contact point.") - rank_field: positiveIntModel = Field(default=None, alias="rank", description="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period when the contact point was/is in use.") - -class TimingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - event_field: List[dateTimeModel] = Field(default_factory=list, alias="event", description="Identifies specific times when the event occurs.") - repeat_field: Timing_RepeatModel = Field(default=None, alias="repeat", description="A set of rules that describe when the event is scheduled.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code).") - -class Timing_RepeatModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - boundsDuration_field: DurationModel = Field(default=None, alias="boundsDuration", description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.") - boundsRange_field: RangeModel = Field(default=None, alias="boundsRange", description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.") - boundsPeriod_field: PeriodModel = Field(default=None, alias="boundsPeriod", description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.") - count_field: positiveIntModel = Field(default=None, alias="count", description="A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values.") - countMax_field: positiveIntModel = Field(default=None, alias="countMax", description="If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times.") - duration_field: decimalModel = Field(default=None, alias="duration", description="How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration.") - durationMax_field: decimalModel = Field(default=None, alias="durationMax", description="If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length.") - # Timing_Repeat_durationUnit_field: durationUnitModel = Field(..., alias="durationUnit", description="The units of time for the duration, in UCUM units") - frequency_field: positiveIntModel = Field(default=None, alias="frequency", description="The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency.") - frequencyMax_field: positiveIntModel = Field(default=None, alias="frequencyMax", description="If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range.") - period_field: decimalModel = Field(default=None, alias="period", description="Indicates the duration of time over which repetitions are to occur; e.g. to express 3 times per day, 3 would be the frequency and 1 day would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length.") - periodMax_field: decimalModel = Field(default=None, alias="periodMax", description="If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as do this once every 3-5 days.") - # Timing_Repeat_periodUnit_field: periodUnitModel = Field(..., alias="periodUnit", description="The units of time for the period in UCUM units") - dayOfWeek_field: List[codeModel] = Field(default_factory=list, alias="dayOfWeek", description="If one or more days of week is provided, then the action happens only on the specified day(s).") - timeOfDay_field: List[timeModel] = Field(default_factory=list, alias="timeOfDay", description="Specified time of day for action to take place.") - offset_field: unsignedIntModel = Field(default=None, alias="offset", description="The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event.") - -class MetaModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - versionId_field: idModel = Field(default=None, alias="versionId", description="The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.") - lastUpdated_field: instantModel = Field(default=None, alias="lastUpdated", description="When the resource last changed - e.g. when the version changed.") - source_field: uriModel = Field(default=None, alias="source", description="A uri that identifies the source system of the resource. This provides a minimal amount of [[[Provenance]]] information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.") - profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="A list of profiles (references to [[[StructureDefinition]]] resources) that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].") - security_field: List[CodingModel] = Field(default_factory=list, alias="security", description="Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.") - tag_field: List[CodingModel] = Field(default_factory=list, alias="tag", description="Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.") - -class ContactDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - name_field: stringModel = Field(default=None, alias="name", description="The name of an individual to contact.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="The contact details for the individual (if a name was provided) or the organization.") - -class ExtendedContactDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - purpose_field: CodeableConceptModel = Field(default=None, alias="purpose", description="The purpose/type of contact.") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="The name of an individual to contact, some types of contact detail are usually blank.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="The contact details application for the purpose defined.") - address_field: AddressModel = Field(default=None, alias="address", description="Address for the contact.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="This contact detail is handled/monitored by a specific organization. If the name is provided in the contact, then it is referring to the named individual within this organization.") - period_field: PeriodModel = Field(default=None, alias="period", description="Period that this contact was valid for usage.") - -class VirtualServiceDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - channelType_field: CodingModel = Field(default=None, alias="channelType", description="The type of virtual service to connect to (i.e. Teams, Zoom, Specific VMR technology, WhatsApp).") - addressContactPoint_field: ContactPointModel = Field(default=None, alias="addressContactPoint", description="What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).") - addressExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="addressExtendedContactDetail", description="What address or number needs to be used for a user to connect to the virtual service to join. The channelType informs as to which datatype is appropriate to use (requires knowledge of the specific type).") - additionalInfo_field: List[urlModel] = Field(default_factory=list, alias="additionalInfo", description="Address to see alternative connection details.") - maxParticipants_field: positiveIntModel = Field(default=None, alias="maxParticipants", description="Maximum number of participants supported by the virtual service.") - sessionKey_field: stringModel = Field(default=None, alias="sessionKey", description="Session Key required by the virtual service.") - -class AvailabilityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - availableTime_field: List[Availability_AvailableTimeModel] = Field(default_factory=list, alias="availableTime", description="Times the {item} is available.") - notAvailableTime_field: List[Availability_NotAvailableTimeModel] = Field(default_factory=list, alias="notAvailableTime", description="Not available during this time due to provided reason.") - -class Availability_AvailableTimeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - daysOfWeek_field: List[codeModel] = Field(default_factory=list, alias="daysOfWeek", description="mon | tue | wed | thu | fri | sat | sun.") - allDay_field: booleanModel = Field(default=None, alias="allDay", description="Always available? i.e. 24 hour service.") - availableStartTime_field: timeModel = Field(default=None, alias="availableStartTime", description="Opening time of day (ignored if allDay = true).") - availableEndTime_field: timeModel = Field(default=None, alias="availableEndTime", description="Closing time of day (ignored if allDay = true).") - -class Availability_NotAvailableTimeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: stringModel = Field(default=None, alias="description", description="Reason presented to the user explaining why time not available.") - during_field: PeriodModel = Field(default=None, alias="during", description="Service not available during this period.") - -class MonetaryComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - type_field: codeModel = Field(default=None, alias="type", description="base | surcharge | deduction | discount | tax | informational.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.") - factor_field: decimalModel = Field(default=None, alias="factor", description="Factor used for calculating this component.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Explicit value amount to be used.") - -class ContributorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # Contributor_type_field: typeModel = Field(..., alias="type", description="The type of contributor.") - name_field: stringModel = Field(default=None, alias="name", description="The name of the individual or organization responsible for the contribution.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the contributor.") - -class DataRequirementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - type_field: codeModel = Field(default=None, alias="type", description="The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile.") - profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="The profile of the required data, specified as the uri of the profile definition.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed.") - mustSupport_field: List[stringModel] = Field(default_factory=list, alias="mustSupport", description="Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. ") - codeFilter_field: List[DataRequirement_CodeFilterModel] = Field(default_factory=list, alias="codeFilter", description="Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed.") - dateFilter_field: List[DataRequirement_DateFilterModel] = Field(default_factory=list, alias="dateFilter", description="Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed.") - valueFilter_field: List[DataRequirement_ValueFilterModel] = Field(default_factory=list, alias="valueFilter", description="Value filters specify additional constraints on the data for elements other than code-valued or date-valued. Each value filter specifies an additional constraint on the data (i.e. valueFilters are AND'ed, not OR'ed).") - limit_field: positiveIntModel = Field(default=None, alias="limit", description="Specifies a maximum number of results that are required (uses the _count search parameter).") - sort_field: List[DataRequirement_SortModel] = Field(default_factory=list, alias="sort", description="Specifies the order of the results to be returned.") - -class DataRequirement_CodeFilterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept.") - searchParam_field: stringModel = Field(default=None, alias="searchParam", description="A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The valueset for the code filter. The valueSet and code elements are additive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.") - code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="The codes for the code filter. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codes.") - -class DataRequirement_DateFilterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing.") - searchParam_field: stringModel = Field(default=None, alias="searchParam", description="A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration before now.") - -class DataRequirement_ValueFilterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of a type that is comparable to the valueFilter.value[x] element for the filter.") - searchParam_field: stringModel = Field(default=None, alias="searchParam", description="A search parameter defined on the specified type of the DataRequirement, and which searches on elements of a type compatible with the type of the valueFilter.value[x] for the filter.") - comparator_field: codeModel = Field(default=None, alias="comparator", description="The comparator to be used to determine whether the value is matching.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the filter.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the filter.") - -class DataRequirement_SortModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The attribute of the sort. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant.") - # DataRequirement_Sort_direction_field: directionModel = Field(..., alias="direction", description="The direction of the sort, ascending or descending.") - -class ParameterDefinitionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - name_field: codeModel = Field(default=None, alias="name", description="The name of the parameter used to allow access to the value of the parameter in evaluation contexts.") - use_field: codeModel = Field(default=None, alias="use", description="Whether the parameter is input or output for the module.") - min_field: integerModel = Field(default=None, alias="min", description="The minimum number of times this parameter SHALL appear in the request or response.") - max_field: stringModel = Field(default=None, alias="max", description="The maximum number of times this element is permitted to appear in the request or response.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="A brief discussion of what the parameter is for and how it is used by the module.") - type_field: codeModel = Field(default=None, alias="type", description="The type of the parameter.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="If specified, this indicates a profile that the input data must conform to, or that the output data will conform to.") - -class RelatedArtifactModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # RelatedArtifact_type_field: typeModel = Field(..., alias="type", description="The type of relationship to the related artifact.") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Provides additional classifiers of the related artifact.") - label_field: stringModel = Field(default=None, alias="label", description="A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index.") - display_field: stringModel = Field(default=None, alias="display", description="A brief description of the document or knowledge resource being referenced, suitable for display to a consumer.") - citation_field: markdownModel = Field(default=None, alias="citation", description="A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format.") - document_field: AttachmentModel = Field(default=None, alias="document", description="The document being referenced, represented as an attachment. This is exclusive with the resource element.") - resource_field: canonicalModel = Field(default=None, alias="resource", description="The related artifact, such as a library, value set, profile, or other knowledge resource.") - resourceReference_field: ReferenceModel = Field(default=None, alias="resourceReference", description="The related artifact, if the artifact is not a canonical resource, or a resource reference to a canonical resource.") - publicationStatus_field: codeModel = Field(default=None, alias="publicationStatus", description="The publication status of the artifact being referred to.") - publicationDate_field: dateModel = Field(default=None, alias="publicationDate", description="The date of publication of the artifact being referred to.") - -class TriggerDefinitionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # TriggerDefinition_type_field: typeModel = Field(..., alias="type", description="The type of triggering event.") - name_field: stringModel = Field(default=None, alias="name", description="A formal name for the event. This may be an absolute URI that identifies the event formally (e.g. from a trigger registry), or a simple relative URI that identifies the event in a local context.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies the event.") - subscriptionTopic_field: canonicalModel = Field(default=None, alias="subscriptionTopic", description="A reference to a SubscriptionTopic resource that defines the event. If this element is provided, no other information about the trigger definition may be supplied.") - timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="The timing of the event (if this is a periodic trigger).") - timingReference_field: ReferenceModel = Field(default=None, alias="timingReference", description="The timing of the event (if this is a periodic trigger).") - data_field: List[DataRequirementModel] = Field(default_factory=list, alias="data", description="The triggering data of the event (if this is a data trigger). If more than one data is requirement is specified, then all the data requirements must be true.") - condition_field: ExpressionModel = Field(default=None, alias="condition", description="A boolean-valued expression that is evaluated in the context of the container of the trigger definition and returns whether or not the trigger fires.") - -class UsageContextModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - code_field: CodingModel = Field(default=None, alias="code", description="A code that identifies the type of context being specified by this usage context.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A value that defines the context specified in this context of use. The interpretation of the value is defined by the code.") - -class DosageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: integerModel = Field(default=None, alias="sequence", description="Indicates the order in which the dosage instructions should be applied or interpreted.") - text_field: stringModel = Field(default=None, alias="text", description="Free text dosage instructions e.g. SIG.") - additionalInstruction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="additionalInstruction", description="Supplemental instructions to the patient on how to take the medication (e.g. with meals ortake half to one hour before food) or warnings for the patient about the medication (e.g. may cause drowsiness or avoid exposure of skin to direct sunlight or sunlamps).") - patientInstruction_field: stringModel = Field(default=None, alias="patientInstruction", description="Instructions in terms that are understood by the patient or consumer.") - timing_field: TimingModel = Field(default=None, alias="timing", description="When medication should be administered.") - asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option).") - asNeededFor_field: List[CodeableConceptModel] = Field(default_factory=list, alias="asNeededFor", description="Indicates whether the Medication is only taken based on a precondition for taking the Medication (CodeableConcept).") - site_field: CodeableConceptModel = Field(default=None, alias="site", description="Body site to administer to.") - route_field: CodeableConceptModel = Field(default=None, alias="route", description="How drug should enter body.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="Technique for administering medication.") - doseAndRate_field: List[Dosage_DoseAndRateModel] = Field(default_factory=list, alias="doseAndRate", description="Depending on the resource,this is the amount of medication administered, to be administered or typical amount to be administered.") - maxDosePerPeriod_field: List[RatioModel] = Field(default_factory=list, alias="maxDosePerPeriod", description="Upper limit on medication per unit of time.") - maxDosePerAdministration_field: QuantityModel = Field(default=None, alias="maxDosePerAdministration", description="Upper limit on medication per administration.") - maxDosePerLifetime_field: QuantityModel = Field(default=None, alias="maxDosePerLifetime", description="Upper limit on medication per lifetime of the patient.") - -class Dosage_DoseAndRateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of dose or rate specified, for example, ordered or calculated.") - doseRange_field: RangeModel = Field(default=None, alias="doseRange", description="Amount of medication per dose.") - doseQuantity_field: QuantityModel = Field(default=None, alias="doseQuantity", description="Amount of medication per dose.") - rateRatio_field: RatioModel = Field(default=None, alias="rateRatio", description="Amount of medication per unit of time.") - rateRange_field: RangeModel = Field(default=None, alias="rateRange", description="Amount of medication per unit of time.") - rateQuantity_field: QuantityModel = Field(default=None, alias="rateQuantity", description="Amount of medication per unit of time.") - -class ProductShelfLifeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="This describes the shelf life, taking into account various scenarios such as shelf life of the packaged Medicinal Product itself, shelf life after transformation where necessary and shelf life after the first opening of a bottle, etc. The shelf life type shall be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified.") - periodDuration_field: DurationModel = Field(default=None, alias="periodDuration", description="The shelf life time period can be specified using a numerical value for the period of time and its unit of time measurement The unit of measurement shall be specified in accordance with ISO 11240 and the resulting terminology The symbol and the symbol identifier shall be used.") - specialPrecautionsForStorage_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialPrecautionsForStorage", description="Special precautions for storage, if any, can be specified using an appropriate controlled vocabulary The controlled term and the controlled term identifier shall be specified.") - -class MarketingStatusModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - country_field: CodeableConceptModel = Field(default=None, alias="country", description="The country in which the marketing authorization has been granted shall be specified It should be specified using the ISO 3166 ‑ 1 alpha-2 code elements.") - jurisdiction_field: CodeableConceptModel = Field(default=None, alias="jurisdiction", description="Where a Medicines Regulatory Agency has granted a marketing authorization for which specific provisions within a jurisdiction apply, the jurisdiction can be specified using an appropriate controlled terminology The controlled term and the controlled term identifier shall be specified.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="This attribute provides information on the status of the marketing of the medicinal product See ISO/TS 20443 for more information and examples.") - dateRange_field: PeriodModel = Field(default=None, alias="dateRange", description="The date when the Medicinal Product is placed on the market by the Marketing Authorization Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain.") - restoreDate_field: dateTimeModel = Field(default=None, alias="restoreDate", description="The date when the Medicinal Product is placed on the market by the Marketing Authorization Holder (or where applicable, the manufacturer/distributor) in a country and/or jurisdiction shall be provided A complete date consisting of day, month and year shall be specified using the ISO 8601 date format NOTE “Placed on the market” refers to the release of the Medicinal Product into the distribution chain.") - -class ExpressionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - description_field: stringModel = Field(default=None, alias="description", description="A brief, natural language description of the condition that effectively communicates the intended semantics.") - name_field: codeModel = Field(default=None, alias="name", description="A short name assigned to the expression to allow for multiple reuse of the expression in the context where it is defined.") - language_field: codeModel = Field(default=None, alias="language", description="The media type of the language for the expression.") - expression_field: stringModel = Field(default=None, alias="expression", description="An expression in the specified language that returns a value.") - reference_field: uriModel = Field(default=None, alias="reference", description="A URI that defines where the expression is found.") - -class ElementDefinitionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The path identifies the element and is expressed as a .-separated list of ancestor elements, beginning with the name of the resource or extension.") - sliceName_field: stringModel = Field(default=None, alias="sliceName", description="The name of this element definition slice, when slicing is working. The name must be a token with no dots or spaces. This is a unique name referring to a specific set of constraints applied to this element, used to provide a name to different slices of the same element.") - sliceIsConstraining_field: booleanModel = Field(default=None, alias="sliceIsConstraining", description="If true, indicates that this slice definition is constraining a slice definition with the same name in an inherited profile. If false, the slice is not overriding any slice in an inherited profile. If missing, the slice might or might not be overriding a slice in an inherited profile, depending on the sliceName.") - label_field: stringModel = Field(default=None, alias="label", description="A single preferred label which is the text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form.") - code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="A code that has the same meaning as the element in a particular terminology.") - slicing_field: ElementDefinition_SlicingModel = Field(default=None, alias="slicing", description="Indicates that the element is sliced into a set of alternative definitions (i.e. in a structure definition, there are multiple different constraints on a single element in the base resource). Slicing can be used in any resource that has cardinality ..* on the base resource, or any resource with a choice of types. The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).") - short_field: stringModel = Field(default=None, alias="short", description="A concise description of what this element means (e.g. for use in autogenerated summaries).") - definition_field: markdownModel = Field(default=None, alias="definition", description="Provides a complete explanation of the meaning of the data element for human readability. For the case of elements derived from existing elements (e.g. constraints), the definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. (Note: The text you are reading is specified in ElementDefinition.definition).") - comment_field: markdownModel = Field(default=None, alias="comment", description="Explanatory notes and implementation guidance about the data element, including notes about how to use the data properly, exceptions to proper use, etc. (Note: The text you are reading is specified in ElementDefinition.comment).") - requirements_field: markdownModel = Field(default=None, alias="requirements", description="This element is for traceability of why the element was created and why the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this element.") - alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="Identifies additional names by which this element might also be known.") - min_field: unsignedIntModel = Field(default=None, alias="min", description="The minimum number of times this element SHALL appear in the instance.") - max_field: stringModel = Field(default=None, alias="max", description="The maximum number of times this element is permitted to appear in the instance.") - base_field: ElementDefinition_BaseModel = Field(default=None, alias="base", description="Information about the base definition of the element, provided to make it unnecessary for tools to trace the deviation of the element through the derived and related profiles. When the element definition is not the original definition of an element - e.g. either in a constraint on another type, or for elements from a super type in a snap shot - then the information in provided in the element definition may be different to the base definition. On the original definition of the element, it will be same.") - contentReference_field: uriModel = Field(default=None, alias="contentReference", description="Identifies an element defined elsewhere in the definition whose content rules should be applied to the current element. ContentReferences bring across all the rules that are in the ElementDefinition for the element, including definitions, cardinality constraints, bindings, invariants etc.") - type_field: List[ElementDefinition_TypeModel] = Field(default_factory=list, alias="type", description="The data type or resource that the value of this element is permitted to be.") - defaultValueAddress_field: AddressModel = Field(default=None, alias="defaultValueAddress", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueAge_field: AgeModel = Field(default=None, alias="defaultValueAge", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueAnnotation_field: AnnotationModel = Field(default=None, alias="defaultValueAnnotation", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueAttachment_field: AttachmentModel = Field(default=None, alias="defaultValueAttachment", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="defaultValueCodeableConcept", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="defaultValueCodeableReference", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueCoding_field: CodingModel = Field(default=None, alias="defaultValueCoding", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueContactPoint_field: ContactPointModel = Field(default=None, alias="defaultValueContactPoint", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueCount_field: CountModel = Field(default=None, alias="defaultValueCount", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueDistance_field: DistanceModel = Field(default=None, alias="defaultValueDistance", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueDuration_field: DurationModel = Field(default=None, alias="defaultValueDuration", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueHumanName_field: HumanNameModel = Field(default=None, alias="defaultValueHumanName", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueIdentifier_field: IdentifierModel = Field(default=None, alias="defaultValueIdentifier", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueMoney_field: MoneyModel = Field(default=None, alias="defaultValueMoney", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValuePeriod_field: PeriodModel = Field(default=None, alias="defaultValuePeriod", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueQuantity_field: QuantityModel = Field(default=None, alias="defaultValueQuantity", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueRange_field: RangeModel = Field(default=None, alias="defaultValueRange", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueRatio_field: RatioModel = Field(default=None, alias="defaultValueRatio", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueRatioRange_field: RatioRangeModel = Field(default=None, alias="defaultValueRatioRange", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueReference_field: ReferenceModel = Field(default=None, alias="defaultValueReference", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueSampledData_field: SampledDataModel = Field(default=None, alias="defaultValueSampledData", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueSignature_field: SignatureModel = Field(default=None, alias="defaultValueSignature", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueTiming_field: TimingModel = Field(default=None, alias="defaultValueTiming", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueContactDetail_field: ContactDetailModel = Field(default=None, alias="defaultValueContactDetail", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueDataRequirement_field: DataRequirementModel = Field(default=None, alias="defaultValueDataRequirement", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueExpression_field: ExpressionModel = Field(default=None, alias="defaultValueExpression", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="defaultValueParameterDefinition", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="defaultValueRelatedArtifact", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="defaultValueTriggerDefinition", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueUsageContext_field: UsageContextModel = Field(default=None, alias="defaultValueUsageContext", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueAvailability_field: AvailabilityModel = Field(default=None, alias="defaultValueAvailability", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="defaultValueExtendedContactDetail", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueDosage_field: DosageModel = Field(default=None, alias="defaultValueDosage", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - defaultValueMeta_field: MetaModel = Field(default=None, alias="defaultValueMeta", description="The value that should be used if there is no value stated in the instance (e.g. 'if not otherwise specified, the abstract is false').") - meaningWhenMissing_field: markdownModel = Field(default=None, alias="meaningWhenMissing", description="The Implicit meaning that is to be understood when this element is missing (e.g. 'when this element is missing, the period is ongoing').") - orderMeaning_field: stringModel = Field(default=None, alias="orderMeaning", description="If present, indicates that the order of the repeating element has meaning and describes what that meaning is. If absent, it means that the order of the element has no meaning.") - fixedAddress_field: AddressModel = Field(default=None, alias="fixedAddress", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedAge_field: AgeModel = Field(default=None, alias="fixedAge", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedAnnotation_field: AnnotationModel = Field(default=None, alias="fixedAnnotation", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedAttachment_field: AttachmentModel = Field(default=None, alias="fixedAttachment", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="fixedCodeableConcept", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="fixedCodeableReference", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedCoding_field: CodingModel = Field(default=None, alias="fixedCoding", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedContactPoint_field: ContactPointModel = Field(default=None, alias="fixedContactPoint", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedCount_field: CountModel = Field(default=None, alias="fixedCount", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedDistance_field: DistanceModel = Field(default=None, alias="fixedDistance", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedDuration_field: DurationModel = Field(default=None, alias="fixedDuration", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedHumanName_field: HumanNameModel = Field(default=None, alias="fixedHumanName", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedIdentifier_field: IdentifierModel = Field(default=None, alias="fixedIdentifier", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedMoney_field: MoneyModel = Field(default=None, alias="fixedMoney", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedPeriod_field: PeriodModel = Field(default=None, alias="fixedPeriod", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedQuantity_field: QuantityModel = Field(default=None, alias="fixedQuantity", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedRange_field: RangeModel = Field(default=None, alias="fixedRange", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedRatio_field: RatioModel = Field(default=None, alias="fixedRatio", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedRatioRange_field: RatioRangeModel = Field(default=None, alias="fixedRatioRange", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedReference_field: ReferenceModel = Field(default=None, alias="fixedReference", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedSampledData_field: SampledDataModel = Field(default=None, alias="fixedSampledData", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedSignature_field: SignatureModel = Field(default=None, alias="fixedSignature", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedTiming_field: TimingModel = Field(default=None, alias="fixedTiming", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedContactDetail_field: ContactDetailModel = Field(default=None, alias="fixedContactDetail", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedDataRequirement_field: DataRequirementModel = Field(default=None, alias="fixedDataRequirement", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedExpression_field: ExpressionModel = Field(default=None, alias="fixedExpression", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="fixedParameterDefinition", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="fixedRelatedArtifact", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="fixedTriggerDefinition", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedUsageContext_field: UsageContextModel = Field(default=None, alias="fixedUsageContext", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedAvailability_field: AvailabilityModel = Field(default=None, alias="fixedAvailability", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="fixedExtendedContactDetail", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedDosage_field: DosageModel = Field(default=None, alias="fixedDosage", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - fixedMeta_field: MetaModel = Field(default=None, alias="fixedMeta", description="Specifies a value that SHALL be exactly the value for this element in the instance, if present. For purposes of comparison, non-significant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.") - patternAddress_field: AddressModel = Field(default=None, alias="patternAddress", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternAge_field: AgeModel = Field(default=None, alias="patternAge", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternAnnotation_field: AnnotationModel = Field(default=None, alias="patternAnnotation", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternAttachment_field: AttachmentModel = Field(default=None, alias="patternAttachment", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="patternCodeableConcept", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="patternCodeableReference", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternCoding_field: CodingModel = Field(default=None, alias="patternCoding", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternContactPoint_field: ContactPointModel = Field(default=None, alias="patternContactPoint", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternCount_field: CountModel = Field(default=None, alias="patternCount", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternDistance_field: DistanceModel = Field(default=None, alias="patternDistance", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternDuration_field: DurationModel = Field(default=None, alias="patternDuration", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternHumanName_field: HumanNameModel = Field(default=None, alias="patternHumanName", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternIdentifier_field: IdentifierModel = Field(default=None, alias="patternIdentifier", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternMoney_field: MoneyModel = Field(default=None, alias="patternMoney", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternPeriod_field: PeriodModel = Field(default=None, alias="patternPeriod", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternQuantity_field: QuantityModel = Field(default=None, alias="patternQuantity", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternRange_field: RangeModel = Field(default=None, alias="patternRange", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternRatio_field: RatioModel = Field(default=None, alias="patternRatio", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternRatioRange_field: RatioRangeModel = Field(default=None, alias="patternRatioRange", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternReference_field: ReferenceModel = Field(default=None, alias="patternReference", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternSampledData_field: SampledDataModel = Field(default=None, alias="patternSampledData", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternSignature_field: SignatureModel = Field(default=None, alias="patternSignature", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternTiming_field: TimingModel = Field(default=None, alias="patternTiming", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternContactDetail_field: ContactDetailModel = Field(default=None, alias="patternContactDetail", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternDataRequirement_field: DataRequirementModel = Field(default=None, alias="patternDataRequirement", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternExpression_field: ExpressionModel = Field(default=None, alias="patternExpression", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="patternParameterDefinition", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="patternRelatedArtifact", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="patternTriggerDefinition", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternUsageContext_field: UsageContextModel = Field(default=None, alias="patternUsageContext", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternAvailability_field: AvailabilityModel = Field(default=None, alias="patternAvailability", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="patternExtendedContactDetail", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternDosage_field: DosageModel = Field(default=None, alias="patternDosage", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - patternMeta_field: MetaModel = Field(default=None, alias="patternMeta", description="Specifies a value that each occurrence of the element in the instance SHALL follow - that is, any value in the pattern must be found in the instance, if the element has a value. Other additional values may be found too. This is effectively constraint by example. ") - example_field: List[ElementDefinition_ExampleModel] = Field(default_factory=list, alias="example", description="A sample value for this element demonstrating the type of information that would typically be found in the element.") - minValueQuantity_field: QuantityModel = Field(default=None, alias="minValueQuantity", description="The minimum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity.") - maxValueQuantity_field: QuantityModel = Field(default=None, alias="maxValueQuantity", description="The maximum allowed value for the element. The value is inclusive. This is allowed for the types date, dateTime, instant, time, decimal, integer, and Quantity.") - maxLength_field: integerModel = Field(default=None, alias="maxLength", description="Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. ```maxLength``` SHOULD only be used on primitive data types that have a string representation (see [[[http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics]]]).") - condition_field: List[idModel] = Field(default_factory=list, alias="condition", description="A reference to an invariant that may make additional statements about the cardinality or value in the instance.") - constraint_field: List[ElementDefinition_ConstraintModel] = Field(default_factory=list, alias="constraint", description="Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.") - mustHaveValue_field: booleanModel = Field(default=None, alias="mustHaveValue", description="Specifies for a primitive data type that the value of the data type cannot be replaced by an extension.") - valueAlternatives_field: List[canonicalModel] = Field(default_factory=list, alias="valueAlternatives", description="Specifies a list of extensions that can appear in place of a primitive value.") - mustSupport_field: booleanModel = Field(default=None, alias="mustSupport", description="If true, implementations that produce or consume resources SHALL provide support for the element in some meaningful way. Note that this is being phased out and replaced by obligations (see below). If false, the element may be ignored and not supported. If false, whether to populate or use the data element in any way is at the discretion of the implementation.") - isModifier_field: booleanModel = Field(default=None, alias="isModifier", description="If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. When used on the root element in an extension definition, this indicates whether or not the extension is a modifier extension.") - isModifierReason_field: stringModel = Field(default=None, alias="isModifierReason", description="Explains how that element affects the interpretation of the resource or element that contains it.") - isSummary_field: booleanModel = Field(default=None, alias="isSummary", description="Whether the element should be included if a client requests a search with the parameter _summary=true.") - binding_field: ElementDefinition_BindingModel = Field(default=None, alias="binding", description="Binds to a value set if this element is coded (code, Coding, CodeableConcept, Quantity), or the data types (string, uri).") - mapping_field: List[ElementDefinition_MappingModel] = Field(default_factory=list, alias="mapping", description="Identifies a concept from an external specification that roughly corresponds to this element.") - -class ElementDefinition_SlicingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - discriminator_field: List[ElementDefinition_DiscriminatorModel] = Field(default_factory=list, alias="discriminator", description="Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.") - description_field: stringModel = Field(default=None, alias="description", description="A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.") - ordered_field: booleanModel = Field(default=None, alias="ordered", description="If the matching elements have to occur in the same order as defined in the profile.") - # ElementDefinition_Slicing_rules_field: rulesModel = Field(..., alias="rules", description="Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.") - -class ElementDefinition_DiscriminatorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - # ElementDefinition_Discriminator_type_field: typeModel = Field(..., alias="type", description="How the element value is interpreted when discrimination is evaluated.") - path_field: stringModel = Field(default=None, alias="path", description="A FHIRPath expression, using [the simple subset of FHIRPath](fhirpath.html#simple), that is used to identify the element on which discrimination is based.") - -class ElementDefinition_BaseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base.") - min_field: unsignedIntModel = Field(default=None, alias="min", description="Minimum cardinality of the base element identified by the path.") - max_field: stringModel = Field(default=None, alias="max", description="Maximum cardinality of the base element identified by the path.") - -class ElementDefinition_TypeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: uriModel = Field(default=None, alias="code", description="URL of Data type or Resource that is a(or the) type used for this element. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. string is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models.") - profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="Identifies a profile structure or implementation Guide that applies to the datatype this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the type SHALL conform to at least one profile defined in the implementation guide.") - targetProfile_field: List[canonicalModel] = Field(default_factory=list, alias="targetProfile", description="Used when the type is Reference or canonical, and identifies a profile structure or implementation Guide that applies to the target of the reference this element refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.") - # ElementDefinition_Type_versioning_field: versioningModel = Field(..., alias="versioning", description="Whether this reference needs to be version specific or version independent, or whether either can be used.") - -class ElementDefinition_ExampleModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - label_field: stringModel = Field(default=None, alias="label", description="Describes the purpose of this example among the set of examples.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The actual value for the element, which must be one of the types allowed for this element.") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The actual value for the element, which must be one of the types allowed for this element.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The actual value for the element, which must be one of the types allowed for this element.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The actual value for the element, which must be one of the types allowed for this element.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The actual value for the element, which must be one of the types allowed for this element.") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The actual value for the element, which must be one of the types allowed for this element.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The actual value for the element, which must be one of the types allowed for this element.") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The actual value for the element, which must be one of the types allowed for this element.") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The actual value for the element, which must be one of the types allowed for this element.") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The actual value for the element, which must be one of the types allowed for this element.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The actual value for the element, which must be one of the types allowed for this element.") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The actual value for the element, which must be one of the types allowed for this element.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The actual value for the element, which must be one of the types allowed for this element.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The actual value for the element, which must be one of the types allowed for this element.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The actual value for the element, which must be one of the types allowed for this element.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The actual value for the element, which must be one of the types allowed for this element.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The actual value for the element, which must be one of the types allowed for this element.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The actual value for the element, which must be one of the types allowed for this element.") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The actual value for the element, which must be one of the types allowed for this element.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The actual value for the element, which must be one of the types allowed for this element.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The actual value for the element, which must be one of the types allowed for this element.") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The actual value for the element, which must be one of the types allowed for this element.") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The actual value for the element, which must be one of the types allowed for this element.") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The actual value for the element, which must be one of the types allowed for this element.") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The actual value for the element, which must be one of the types allowed for this element.") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The actual value for the element, which must be one of the types allowed for this element.") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The actual value for the element, which must be one of the types allowed for this element.") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The actual value for the element, which must be one of the types allowed for this element.") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The actual value for the element, which must be one of the types allowed for this element.") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The actual value for the element, which must be one of the types allowed for this element.") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The actual value for the element, which must be one of the types allowed for this element.") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The actual value for the element, which must be one of the types allowed for this element.") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The actual value for the element, which must be one of the types allowed for this element.") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The actual value for the element, which must be one of the types allowed for this element.") - -class ElementDefinition_ConstraintModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - key_field: idModel = Field(default=None, alias="key", description="Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.") - requirements_field: markdownModel = Field(default=None, alias="requirements", description="Description of why this constraint is necessary or appropriate.") - # ElementDefinition_Constraint_severity_field: severityModel = Field(..., alias="severity", description="Identifies the impact constraint violation has on the conformance of the instance.") - suppress_field: booleanModel = Field(default=None, alias="suppress", description="If true, indicates that the warning or best practice guideline should be suppressed.") - human_field: stringModel = Field(default=None, alias="human", description="Text that can be used to describe the constraint in messages identifying that the constraint has been violated.") - expression_field: stringModel = Field(default=None, alias="expression", description="A [FHIRPath](fhirpath.html) expression of constraint that can be executed to see if this constraint is met.") - source_field: canonicalModel = Field(default=None, alias="source", description="A reference to the original source of the constraint, for traceability purposes.") - -class ElementDefinition_BindingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - # ElementDefinition_Binding_strength_field: strengthModel = Field(..., alias="strength", description="Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.") - description_field: markdownModel = Field(default=None, alias="description", description="Describes the intended use of this particular set of codes.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="Refers to the value set that identifies the set of codes the binding refers to.") - additional_field: List[ElementDefinition_AdditionalModel] = Field(default_factory=list, alias="additional", description="Additional bindings that help applications implementing this element. Additional bindings do not replace the main binding but provide more information and/or context.") - -class ElementDefinition_AdditionalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - purpose_field: codeModel = Field(default=None, alias="purpose", description="The use of this additional binding.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The valueSet that is being bound for the purpose.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation of the purpose of use of the bindingproviding additional information about how it is intended to be used.") - shortDoco_field: stringModel = Field(default=None, alias="shortDoco", description="Concise documentation - for summary tables.") - usage_field: List[UsageContextModel] = Field(default_factory=list, alias="usage", description="Qualifies the usage of the binding. Typically bindings are qualified by jurisdiction, but they may also be qualified by gender, workflow status, clinical domain etc. The information to decide whether a usege context applies is usually outside the resource, determined by context, and this might present challenges for validation tooling.") - any_field: booleanModel = Field(default=None, alias="any", description="Whether the binding applies to all repeats, or just to any one of them. This is only relevant for elements that can repeat.") - -class ElementDefinition_MappingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identity_field: idModel = Field(default=None, alias="identity", description="An internal reference to the definition of a mapping.") - language_field: codeModel = Field(default=None, alias="language", description="Identifies the computable language in which mapping.map is expressed.") - map_field: stringModel = Field(default=None, alias="map", description="Expresses what part of the target specification corresponds to this element.") - comment_field: markdownModel = Field(default=None, alias="comment", description="Comments that provide information about the mapping or its use.") - -class AccountModel(BaseModel): - resourceType_field: str = "Account" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier used to reference the account. Might or might not be intended for human use (e.g. credit card number).") - status_field: codeModel = Field(default=None, alias="status", description="Indicates whether the account is presently used/usable or not.") - billingStatus_field: CodeableConceptModel = Field(default=None, alias="billingStatus", description="The BillingStatus tracks the lifecycle of the account through the billing process. It indicates how transactions are treated when they are allocated to the account.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Categorizes the account for reporting and searching purposes.") - name_field: stringModel = Field(default=None, alias="name", description="Name used for the account when displaying it to humans in reports, etc.") - subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="Identifies the entity which incurs the expenses. While the immediate recipients of services or goods might be entities related to the subject, the expenses were ultimately incurred by the subject of the Account.") - servicePeriod_field: PeriodModel = Field(default=None, alias="servicePeriod", description="The date range of services associated with this account.") - coverage_field: List[Account_CoverageModel] = Field(default_factory=list, alias="coverage", description="The party(s) that are responsible for covering the payment of this account, and what order should they be applied to the account.") - owner_field: ReferenceModel = Field(default=None, alias="owner", description="Indicates the service area, hospital, department, etc. with responsibility for managing the Account.") - description_field: markdownModel = Field(default=None, alias="description", description="Provides additional information about what the account tracks and how it is used.") - guarantor_field: List[Account_GuarantorModel] = Field(default_factory=list, alias="guarantor", description="The parties responsible for balancing the account if other payment options fall short.") - diagnosis_field: List[Account_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="When using an account for billing a specific Encounter the set of diagnoses that are relevant for billing are stored here on the account where they are able to be sequenced appropriately prior to processing to produce claim(s).") - procedure_field: List[Account_ProcedureModel] = Field(default_factory=list, alias="procedure", description="When using an account for billing a specific Encounter the set of procedures that are relevant for billing are stored here on the account where they are able to be sequenced appropriately prior to processing to produce claim(s).") - relatedAccount_field: List[Account_RelatedAccountModel] = Field(default_factory=list, alias="relatedAccount", description="Other associated accounts related to this account.") - currency_field: CodeableConceptModel = Field(default=None, alias="currency", description="The default currency for the account.") - balance_field: List[Account_BalanceModel] = Field(default_factory=list, alias="balance", description="The calculated account balances - these are calculated and processed by the finance system.") - calculatedAt_field: instantModel = Field(default=None, alias="calculatedAt", description="Time the balance amount was calculated.") - -class Account_CoverageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="The party(s) that contribute to payment (or part of) of the charges applied to this account (including self-pay).") - priority_field: positiveIntModel = Field(default=None, alias="priority", description="The priority of the coverage in the context of this account.") - -class Account_GuarantorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - party_field: ReferenceModel = Field(default=None, alias="party", description="The entity who is responsible.") - onHold_field: booleanModel = Field(default=None, alias="onHold", description="A guarantor may be placed on credit hold or otherwise have their role temporarily suspended.") - period_field: PeriodModel = Field(default=None, alias="period", description="The timeframe during which the guarantor accepts responsibility for the account.") - -class Account_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="Ranking of the diagnosis (for each type).") - condition_field: CodeableReferenceModel = Field(default=None, alias="condition", description="The diagnosis relevant to the account.") - dateOfDiagnosis_field: dateTimeModel = Field(default=None, alias="dateOfDiagnosis", description="Ranking of the diagnosis (for each type).") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Type that this diagnosis has relevant to the account (e.g. admission, billing, discharge …).") - onAdmission_field: booleanModel = Field(default=None, alias="onAdmission", description="Was the Diagnosis present on Admission in the related Encounter.") - packageCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="packageCode", description="The package code can be used to group diagnoses that may be priced or delivered as a single product. Such as DRGs.") - -class Account_ProcedureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="Ranking of the procedure (for each type).") - code_field: CodeableReferenceModel = Field(default=None, alias="code", description="The procedure relevant to the account.") - dateOfService_field: dateTimeModel = Field(default=None, alias="dateOfService", description="Date of the procedure when using a coded procedure. If using a reference to a procedure, then the date on the procedure should be used.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="How this procedure value should be used in charging the account.") - packageCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="packageCode", description="The package code can be used to group procedures that may be priced or delivered as a single product. Such as DRGs.") - device_field: List[ReferenceModel] = Field(default_factory=list, alias="device", description="Any devices that were associated with the procedure relevant to the account.") - -class Account_RelatedAccountModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="Relationship of the associated Account.") - account_field: ReferenceModel = Field(default=None, alias="account", description="Reference to an associated Account.") - -class Account_BalanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - aggregate_field: CodeableConceptModel = Field(default=None, alias="aggregate", description="Who is expected to pay this part of the balance.") - term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term of the account balances - The balance value is the amount that was outstanding for this age.") - estimate_field: booleanModel = Field(default=None, alias="estimate", description="The amount is only an estimated value - this is likely common for `current` term balances, but not with known terms (that were generated by a backend process).") - amount_field: MoneyModel = Field(default=None, alias="amount", description="The actual balance value calculated for the age defined in the term property.") - -class ActivityDefinitionModel(BaseModel): - resourceType_field: str = "ActivityDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this activity definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this activity definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the activity definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this activity definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the activity definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the activity definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the activity definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the activity definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this activity definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this activity definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the activity definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the activity definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the activity definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the activity definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate activity definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the activity definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this activity definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the activity definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the activity definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the activity definition content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the activity. Topics provide a high-level categorization of the activity that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the activity definition giving additional information about its content.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the activity being defined. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the activity being defined. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") - usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the activity definition is used from a clinical perspective.") - library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing any formal logic used by the activity definition.") - kind_field: codeModel = Field(default=None, alias="kind", description="A description of the kind of resource the activity definition is representing. For example, a MedicationRequest, a ServiceRequest, or a CommunicationRequest.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="A profile to which the target of the activity definition is expected to conform.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Detailed description of the type of activity; e.g. What lab test, what procedure, what kind of encounter.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the activity and where the request should fit into the workflow chain.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the activity should be addressed with respect to other requests.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="Set this to true if the definition is to indicate that a particular activity should NOT be performed. If true, this element should be interpreted to reinforce a negative coding. For example NPO as a code with a doNotPerform of true would still indicate to NOT perform the action.") - timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="The timing or frequency upon which the described activity is to occur.") - timingAge_field: AgeModel = Field(default=None, alias="timingAge", description="The timing or frequency upon which the described activity is to occur.") - timingRange_field: RangeModel = Field(default=None, alias="timingRange", description="The timing or frequency upon which the described activity is to occur.") - timingDuration_field: DurationModel = Field(default=None, alias="timingDuration", description="The timing or frequency upon which the described activity is to occur.") - asNeededCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="asNeededCodeableConcept", description="If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example pain, on flare-up, etc.") - location_field: CodeableReferenceModel = Field(default=None, alias="location", description="Identifies the facility where the activity will occur; e.g. home, hospital, specific clinic, etc.") - participant_field: List[ActivityDefinition_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who should participate in performing the action described.") - productReference_field: ReferenceModel = Field(default=None, alias="productReference", description="Identifies the food, drug or other product being consumed or supplied in the activity.") - productCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="productCodeableConcept", description="Identifies the food, drug or other product being consumed or supplied in the activity.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Identifies the quantity expected to be consumed at once (per dose, per meal, etc.).") - dosage_field: List[DosageModel] = Field(default_factory=list, alias="dosage", description="Provides detailed dosage instructions in the same way that they are described for MedicationRequest resources.") - bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="Indicates the sites on the subject's body where the procedure should be performed (I.e. the target sites).") - specimenRequirement_field: List[canonicalModel] = Field(default_factory=list, alias="specimenRequirement", description="Defines specimen requirements for the action to be performed, such as required specimens for a lab test.") - observationRequirement_field: List[canonicalModel] = Field(default_factory=list, alias="observationRequirement", description="Defines observation requirements for the action to be performed, such as body weight or surface area.") - observationResultRequirement_field: List[canonicalModel] = Field(default_factory=list, alias="observationResultRequirement", description="Defines the observations that are expected to be produced by the action.") - transform_field: canonicalModel = Field(default=None, alias="transform", description="A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.") - dynamicValue_field: List[ActivityDefinition_DynamicValueModel] = Field(default_factory=list, alias="dynamicValue", description="Dynamic values that will be evaluated to produce values for elements of the resulting resource. For example, if the dosage of a medication must be computed based on the patient's weight, a dynamic value would be used to specify an expression that calculated the weight, and the path on the request resource that would contain the result.") - -class ActivityDefinition_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") - typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") - typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Indicates how the actor will be involved in the action - author, reviewer, witness, etc.") - -class ActivityDefinition_DynamicValueModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression specifying the value of the customized element.") - -class ActorDefinitionModel(BaseModel): - resourceType_field: str = "ActorDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this actor definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this actor definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the actor definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this actor definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the actor definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the actor definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the actor definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the actor definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this actor definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this actor definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the actor definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the actor definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the actor definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the actor.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate actor definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the actor definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this actor definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the actor definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the actor definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - type_field: codeModel = Field(default=None, alias="type", description="Whether the actor represents a human or an appliction.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation about the functionality of the actor.") - reference_field: List[urlModel] = Field(default_factory=list, alias="reference", description="A reference to additional documentation about the actor, but description and documentation.") - capabilities_field: canonicalModel = Field(default=None, alias="capabilities", description="The capability statement for the actor (if the concept is applicable).") - derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="A url that identifies the definition of this actor in another IG (which IG must be listed in the dependencies). This actor inherits all the obligations etc. as defined in the other IG.") - -class AdministrableProductDefinitionModel(BaseModel): - resourceType_field: str = "AdministrableProductDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier for the administrable product.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this administrable product. Enables tracking the life-cycle of the content.") - formOf_field: List[ReferenceModel] = Field(default_factory=list, alias="formOf", description="References a product from which one or more of the constituent parts of that product can be prepared and used as described by this administrable product. If this administrable product describes the administration of a crushed tablet, the 'formOf' would be the product representing a distribution containing tablets and possibly also a cream. This is distinct from the 'producedFrom' which refers to the specific components of the product that are used in this preparation, rather than the product as a whole.") - administrableDoseForm_field: CodeableConceptModel = Field(default=None, alias="administrableDoseForm", description="The dose form of the final product after necessary reconstitution or processing. Contrasts to the manufactured dose form (see ManufacturedItemDefinition). If the manufactured form was 'powder for solution for injection', the administrable dose form could be 'solution for injection' (once mixed with another item having manufactured form 'solvent for solution for injection').") - unitOfPresentation_field: CodeableConceptModel = Field(default=None, alias="unitOfPresentation", description="The presentation type in which this item is given to a patient. e.g. for a spray - 'puff' (as in 'contains 100 mcg per puff'), or for a liquid - 'vial' (as in 'contains 5 ml per vial').") - producedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="producedFrom", description="Indicates the specific manufactured items that are part of the 'formOf' product that are used in the preparation of this specific administrable form. In some cases, an administrable form might use all of the items from the overall product (or there might only be one item), while in other cases, an administrable form might use only a subset of the items available in the overall product. For example, an administrable form might involve combining a liquid and a powder available as part of an overall product, but not involve applying the also supplied cream.") - ingredient_field: List[CodeableConceptModel] = Field(default_factory=list, alias="ingredient", description="The ingredients of this administrable medicinal product. This is only needed if the ingredients are not specified either using ManufacturedItemDefiniton (via AdministrableProductDefinition.producedFrom) to state which component items are used to make this, or using by incoming references from the Ingredient resource, to state in detail which substances exist within this. This element allows a basic coded ingredient to be used.") - device_field: ReferenceModel = Field(default=None, alias="device", description="A device that is integral to the medicinal product, in effect being considered as an ingredient of the medicinal product. This is not intended for devices that are just co-packaged.") - description_field: markdownModel = Field(default=None, alias="description", description="A general description of the product, when in its final form, suitable for administration e.g. effervescent blue liquid, to be swallowed. Intended to be used when the other structured properties of this resource are insufficient or cannot be supported. It is not intended to duplicate information already carried elswehere.") - property_field: List[AdministrableProductDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="Characteristics e.g. a product's onset of action.") - routeOfAdministration_field: List[AdministrableProductDefinition_RouteOfAdministrationModel] = Field(default_factory=list, alias="routeOfAdministration", description="The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. RouteOfAdministration cannot be used when the 'formOf' product already uses MedicinalProductDefinition.route (and vice versa).") - -class AdministrableProductDefinition_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A value for the characteristic.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status of characteristic e.g. assigned or pending.") - -class AdministrableProductDefinition_RouteOfAdministrationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded expression for the route.") - firstDose_field: QuantityModel = Field(default=None, alias="firstDose", description="The first dose (dose quantity) administered can be specified for the product, using a numerical value and its unit of measurement.") - maxSingleDose_field: QuantityModel = Field(default=None, alias="maxSingleDose", description="The maximum single dose that can be administered, specified using a numerical value and its unit of measurement.") - maxDosePerDay_field: QuantityModel = Field(default=None, alias="maxDosePerDay", description="The maximum dose per day (maximum dose quantity to be administered in any one 24-h period) that can be administered.") - maxDosePerTreatmentPeriod_field: RatioModel = Field(default=None, alias="maxDosePerTreatmentPeriod", description="The maximum dose per treatment period that can be administered.") - maxTreatmentPeriod_field: DurationModel = Field(default=None, alias="maxTreatmentPeriod", description="The maximum treatment period during which the product can be administered.") - targetSpecies_field: List[AdministrableProductDefinition_TargetSpeciesModel] = Field(default_factory=list, alias="targetSpecies", description="A species for which this route applies.") - -class AdministrableProductDefinition_TargetSpeciesModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded expression for the species.") - withdrawalPeriod_field: List[AdministrableProductDefinition_WithdrawalPeriodModel] = Field(default_factory=list, alias="withdrawalPeriod", description="A species specific time during which consumption of animal product is not appropriate.") - -class AdministrableProductDefinition_WithdrawalPeriodModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - tissue_field: CodeableConceptModel = Field(default=None, alias="tissue", description="Coded expression for the type of tissue for which the withdrawal period applies, e.g. meat, milk.") - value_field: QuantityModel = Field(default=None, alias="value", description="A value for the time.") - supportingInformation_field: stringModel = Field(default=None, alias="supportingInformation", description="Extra information about the withdrawal period.") - -class AdverseEventModel(BaseModel): - resourceType_field: str = "AdverseEvent" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this adverse event by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the adverse event or potential adverse event.") - actuality_field: codeModel = Field(default=None, alias="actuality", description="Whether the event actually happened or was a near miss. Note that this is independent of whether anyone was affected or harmed or how severely.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The overall type of event, intended for search and filtering purposes.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Specific event that occurred or that was averted, such as patient fall, wrong organ removed, or wrong blood transfused.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="This subject or group impacted by the event.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter associated with the start of the AdverseEvent.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date (and perhaps time) when the adverse event occurred.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The date (and perhaps time) when the adverse event occurred.") - detected_field: dateTimeModel = Field(default=None, alias="detected", description="Estimated or actual date the AdverseEvent began, in the opinion of the reporter.") - recordedDate_field: dateTimeModel = Field(default=None, alias="recordedDate", description="The date on which the existence of the AdverseEvent was first recorded.") - resultingEffect_field: List[ReferenceModel] = Field(default_factory=list, alias="resultingEffect", description="Information about the condition that occurred as a result of the adverse event, such as hives due to the exposure to a substance (for example, a drug or a chemical) or a broken leg as a result of the fall.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The information about where the adverse event occurred.") - seriousness_field: CodeableConceptModel = Field(default=None, alias="seriousness", description="Assessment whether this event, or averted event, was of clinical importance.") - outcome_field: List[CodeableConceptModel] = Field(default_factory=list, alias="outcome", description="Describes the type of outcome from the adverse event, such as resolved, recovering, ongoing, resolved-with-sequelae, or fatal.") - recorder_field: ReferenceModel = Field(default=None, alias="recorder", description="Information on who recorded the adverse event. May be the patient or a practitioner.") - participant_field: List[AdverseEvent_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the adverse event and how they were involved.") - study_field: List[ReferenceModel] = Field(default_factory=list, alias="study", description="The research study that the subject is enrolled in.") - expectedInResearchStudy_field: booleanModel = Field(default=None, alias="expectedInResearchStudy", description="Considered likely or probable or anticipated in the research study. Whether the reported event matches any of the outcomes for the patient that are considered by the study as known or likely.") - suspectEntity_field: List[AdverseEvent_SuspectEntityModel] = Field(default_factory=list, alias="suspectEntity", description="Describes the entity that is suspected to have caused the adverse event.") - contributingFactor_field: List[AdverseEvent_ContributingFactorModel] = Field(default_factory=list, alias="contributingFactor", description="The contributing factors suspected to have increased the probability or severity of the adverse event.") - preventiveAction_field: List[AdverseEvent_PreventiveActionModel] = Field(default_factory=list, alias="preventiveAction", description="Preventive actions that contributed to avoiding the adverse event.") - mitigatingAction_field: List[AdverseEvent_MitigatingActionModel] = Field(default_factory=list, alias="mitigatingAction", description="The ameliorating action taken after the adverse event occured in order to reduce the extent of harm.") - supportingInfo_field: List[AdverseEvent_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Supporting information relevant to the event.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the adverse event by the performer, subject or other participants.") - -class AdverseEvent_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the adverse event, such as contributor or informant.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the event.") - -class AdverseEvent_SuspectEntityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - instanceCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="instanceCodeableConcept", description="Identifies the actual instance of what caused the adverse event. May be a substance, medication, medication administration, medication statement or a device.") - instanceReference_field: ReferenceModel = Field(default=None, alias="instanceReference", description="Identifies the actual instance of what caused the adverse event. May be a substance, medication, medication administration, medication statement or a device.") - causality_field: AdverseEvent_CausalityModel = Field(default=None, alias="causality", description="Information on the possible cause of the event.") - -class AdverseEvent_CausalityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - assessmentMethod_field: CodeableConceptModel = Field(default=None, alias="assessmentMethod", description="The method of evaluating the relatedness of the suspected entity to the event.") - entityRelatedness_field: CodeableConceptModel = Field(default=None, alias="entityRelatedness", description="The result of the assessment regarding the relatedness of the suspected entity to the event.") - author_field: ReferenceModel = Field(default=None, alias="author", description="The author of the information on the possible cause of the event.") - -class AdverseEvent_ContributingFactorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The item that is suspected to have increased the probability or severity of the adverse event.") - itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The item that is suspected to have increased the probability or severity of the adverse event.") - -class AdverseEvent_PreventiveActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The action that contributed to avoiding the adverse event.") - itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The action that contributed to avoiding the adverse event.") - -class AdverseEvent_MitigatingActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The ameliorating action taken after the adverse event occured in order to reduce the extent of harm.") - itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The ameliorating action taken after the adverse event occured in order to reduce the extent of harm.") - -class AdverseEvent_SupportingInfoModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="Relevant past history for the subject. In a clinical care context, an example being a patient had an adverse event following a pencillin administration and the patient had a previously documented penicillin allergy. In a clinical trials context, an example is a bunion or rash that was present prior to the study. Additionally, the supporting item can be a document that is relevant to this instance of the adverse event that is not part of the subject's medical history. For example, a clinical note, staff list, or material safety data sheet (MSDS). Supporting information is not a contributing factor, preventive action, or mitigating action.") - itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="Relevant past history for the subject. In a clinical care context, an example being a patient had an adverse event following a pencillin administration and the patient had a previously documented penicillin allergy. In a clinical trials context, an example is a bunion or rash that was present prior to the study. Additionally, the supporting item can be a document that is relevant to this instance of the adverse event that is not part of the subject's medical history. For example, a clinical note, staff list, or material safety data sheet (MSDS). Supporting information is not a contributing factor, preventive action, or mitigating action.") - -class AllergyIntoleranceModel(BaseModel): - resourceType_field: str = "AllergyIntolerance" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - clinicalStatus_field: CodeableConceptModel = Field(default=None, alias="clinicalStatus", description="The clinical status of the allergy or intolerance.") - verificationStatus_field: CodeableConceptModel = Field(default=None, alias="verificationStatus", description="Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product). The verification status pertains to the allergy or intolerance, itself, not to any specific AllergyIntolerance attribute.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identification of the underlying physiological mechanism for the reaction risk.") - category_field: List[codeModel] = Field(default_factory=list, alias="category", description="Category of the identified substance.") - criticality_field: codeModel = Field(default=None, alias="criticality", description="Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for an allergy or intolerance statement (either a positive or a negated/excluded statement). This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., Latex), an allergy or intolerance condition (e.g., Latex allergy), or a negated/excluded code for a specific substance or class (e.g., No latex allergy) or a general or categorical negated statement (e.g., No known allergy, No known drug allergies). Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who has the allergy or intolerance.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter when the allergy or intolerance was asserted.") - onsetAge_field: AgeModel = Field(default=None, alias="onsetAge", description="Estimated or actual date, date-time, or age when allergy or intolerance was identified.") - onsetPeriod_field: PeriodModel = Field(default=None, alias="onsetPeriod", description="Estimated or actual date, date-time, or age when allergy or intolerance was identified.") - onsetRange_field: RangeModel = Field(default=None, alias="onsetRange", description="Estimated or actual date, date-time, or age when allergy or intolerance was identified.") - recordedDate_field: dateTimeModel = Field(default=None, alias="recordedDate", description="The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date.") - participant_field: List[AllergyIntolerance_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the activities related to the allergy or intolerance and how they were involved.") - lastOccurrence_field: dateTimeModel = Field(default=None, alias="lastOccurrence", description="Represents the date and/or time of the last known occurrence of a reaction event.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.") - reaction_field: List[AllergyIntolerance_ReactionModel] = Field(default_factory=list, alias="reaction", description="Details about each adverse reaction event linked to exposure to the identified substance.") - -class AllergyIntolerance_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the activities related to the allergy or intolerance.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the activities related to the allergy or intolerance.") - -class AllergyIntolerance_ReactionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - substance_field: CodeableConceptModel = Field(default=None, alias="substance", description="Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance.") - manifestation_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="manifestation", description="Clinical symptoms and/or signs that are observed or associated with the adverse reaction event.") - description_field: stringModel = Field(default=None, alias="description", description="Text description about the reaction as a whole, including details of the manifestation if required.") - onset_field: dateTimeModel = Field(default=None, alias="onset", description="Record of the date and/or time of the onset of the Reaction.") - severity_field: codeModel = Field(default=None, alias="severity", description="Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.") - exposureRoute_field: CodeableConceptModel = Field(default=None, alias="exposureRoute", description="Identification of the route by which the subject was exposed to the substance.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional text about the adverse reaction event not captured in other fields.") - -class AppointmentModel(BaseModel): - resourceType_field: str = "Appointment" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).") - status_field: codeModel = Field(default=None, alias="status", description="The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.") - cancellationReason_field: CodeableConceptModel = Field(default=None, alias="cancellationReason", description="The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply.") - class_field: List[CodeableConceptModel] = Field(default_factory=list, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") - serviceCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceCategory", description="A broad categorization of the service that is to be performed during this appointment.") - serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="The specific service that is to be performed during this appointment.") - specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment.") - appointmentType_field: CodeableConceptModel = Field(default=None, alias="appointmentType", description="The style of appointment or patient that has been booked in the slot (not service type).") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason that this appointment is being scheduled. This is more clinical than administrative. This can be coded, or as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority).") - description_field: stringModel = Field(default=None, alias="description", description="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the note field.") - replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Appointment replaced by this Appointment in cases where there is a cancellation, the details of the cancellation can be found in the cancellationReason property (on the referenced resource).") - virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. conference call).") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information to support the appointment provided when making the appointment.") - previousAppointment_field: ReferenceModel = Field(default=None, alias="previousAppointment", description="The previous appointment in a series of related appointments.") - originatingAppointment_field: ReferenceModel = Field(default=None, alias="originatingAppointment", description="The originating appointment in a recurring set of related appointments.") - start_field: instantModel = Field(default=None, alias="start", description="Date/Time that the appointment is to take place.") - end_field: instantModel = Field(default=None, alias="end", description="Date/Time that the appointment is to conclude.") - minutesDuration_field: positiveIntModel = Field(default=None, alias="minutesDuration", description="Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end.") - requestedPeriod_field: List[PeriodModel] = Field(default_factory=list, alias="requestedPeriod", description="A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.") - slot_field: List[ReferenceModel] = Field(default_factory=list, alias="slot", description="The slots from the participants' schedules that will be filled by the appointment.") - account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that is expected to be used for billing the activities that result from this Appointment.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment.") - cancellationDate_field: dateTimeModel = Field(default=None, alias="cancellationDate", description="The date/time describing when the appointment was cancelled.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes/comments about the appointment.") - patientInstruction_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="patientInstruction", description="While Appointment.note contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before).") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The request this appointment is allocated to assess (e.g. incoming referral or procedure request).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group associated with the appointment, if they are to be present (usually) then they should also be included in the participant backbone element.") - participant_field: List[Appointment_ParticipantModel] = Field(default_factory=list, alias="participant", description="List of participants involved in the appointment.") - recurrenceId_field: positiveIntModel = Field(default=None, alias="recurrenceId", description="The sequence number that identifies a specific appointment in a recurring pattern.") - occurrenceChanged_field: booleanModel = Field(default=None, alias="occurrenceChanged", description="This appointment varies from the recurring pattern.") - recurrenceTemplate_field: List[Appointment_RecurrenceTemplateModel] = Field(default_factory=list, alias="recurrenceTemplate", description="The details of the recurrence pattern or template that is used to generate recurring appointments.") - -class Appointment_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Role of participant in the appointment.") - period_field: PeriodModel = Field(default=None, alias="period", description="Participation period of the actor.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The individual, device, location, or service participating in the appointment.") - required_field: booleanModel = Field(default=None, alias="required", description="Whether this participant is required to be present at the meeting. If false, the participant is optional.") - status_field: codeModel = Field(default=None, alias="status", description="Participation status of the actor.") - -class Appointment_RecurrenceTemplateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - timezone_field: CodeableConceptModel = Field(default=None, alias="timezone", description="The timezone of the recurring appointment occurrences.") - recurrenceType_field: CodeableConceptModel = Field(default=None, alias="recurrenceType", description="How often the appointment series should recur.") - lastOccurrenceDate_field: dateModel = Field(default=None, alias="lastOccurrenceDate", description="Recurring appointments will not occur after this date.") - occurrenceCount_field: positiveIntModel = Field(default=None, alias="occurrenceCount", description="How many appointments are planned in the recurrence.") - occurrenceDate_field: List[dateModel] = Field(default_factory=list, alias="occurrenceDate", description="The list of specific dates that will have appointments generated.") - weeklyTemplate_field: Appointment_WeeklyTemplateModel = Field(default=None, alias="weeklyTemplate", description="Information about weekly recurring appointments.") - monthlyTemplate_field: Appointment_MonthlyTemplateModel = Field(default=None, alias="monthlyTemplate", description="Information about monthly recurring appointments.") - yearlyTemplate_field: Appointment_YearlyTemplateModel = Field(default=None, alias="yearlyTemplate", description="Information about yearly recurring appointments.") - excludingDate_field: List[dateModel] = Field(default_factory=list, alias="excludingDate", description="Any dates, such as holidays, that should be excluded from the recurrence.") - excludingRecurrenceId_field: List[positiveIntModel] = Field(default_factory=list, alias="excludingRecurrenceId", description="Any dates, such as holidays, that should be excluded from the recurrence.") - -class Appointment_WeeklyTemplateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - monday_field: booleanModel = Field(default=None, alias="monday", description="Indicates that recurring appointments should occur on Mondays.") - tuesday_field: booleanModel = Field(default=None, alias="tuesday", description="Indicates that recurring appointments should occur on Tuesdays.") - wednesday_field: booleanModel = Field(default=None, alias="wednesday", description="Indicates that recurring appointments should occur on Wednesdays.") - thursday_field: booleanModel = Field(default=None, alias="thursday", description="Indicates that recurring appointments should occur on Thursdays.") - friday_field: booleanModel = Field(default=None, alias="friday", description="Indicates that recurring appointments should occur on Fridays.") - saturday_field: booleanModel = Field(default=None, alias="saturday", description="Indicates that recurring appointments should occur on Saturdays.") - sunday_field: booleanModel = Field(default=None, alias="sunday", description="Indicates that recurring appointments should occur on Sundays.") - weekInterval_field: positiveIntModel = Field(default=None, alias="weekInterval", description="The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.") - -class Appointment_MonthlyTemplateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - dayOfMonth_field: positiveIntModel = Field(default=None, alias="dayOfMonth", description="Indicates that appointments in the series of recurring appointments should occur on a specific day of the month.") - nthWeekOfMonth_field: CodingModel = Field(default=None, alias="nthWeekOfMonth", description="Indicates which week within a month the appointments in the series of recurring appointments should occur on.") - dayOfWeek_field: CodingModel = Field(default=None, alias="dayOfWeek", description="Indicates which day of the week the recurring appointments should occur each nth week.") - monthInterval_field: positiveIntModel = Field(default=None, alias="monthInterval", description="Indicates that recurring appointments should occur every nth month.") - -class Appointment_YearlyTemplateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - yearInterval_field: positiveIntModel = Field(default=None, alias="yearInterval", description="Appointment recurs every nth year.") - -class AppointmentResponseModel(BaseModel): - resourceType_field: str = "AppointmentResponse" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate.") - appointment_field: ReferenceModel = Field(default=None, alias="appointment", description="Appointment that this response is replying to.") - proposedNewTime_field: booleanModel = Field(default=None, alias="proposedNewTime", description="Indicates that the response is proposing a different time that was initially requested. The new proposed time will be indicated in the start and end properties.") - start_field: instantModel = Field(default=None, alias="start", description="Date/Time that the appointment is to take place, or requested new start time.") - end_field: instantModel = Field(default=None, alias="end", description="This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time.") - participantType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="participantType", description="Role of participant in the appointment.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="A Person, Location, HealthcareService, or Device that is participating in the appointment.") - participantStatus_field: codeModel = Field(default=None, alias="participantStatus", description="Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty.") - comment_field: markdownModel = Field(default=None, alias="comment", description="Additional comments about the appointment.") - recurring_field: booleanModel = Field(default=None, alias="recurring", description="Indicates that this AppointmentResponse applies to all occurrences in a recurring request.") - occurrenceDate_field: dateModel = Field(default=None, alias="occurrenceDate", description="The original date within a recurring request. This could be used in place of the recurrenceId to be more direct (or where the template is provided through the simple list of dates in `Appointment.occurrenceDate`).") - recurrenceId_field: positiveIntModel = Field(default=None, alias="recurrenceId", description="The recurrence ID (sequence number) of the specific appointment when responding to a recurring request.") - -class ArtifactAssessmentModel(BaseModel): - resourceType_field: str = "ArtifactAssessment" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this artifact assessment when it is represented in other formats, or referenced in a specification, model, design or an instance.") - title_field: stringModel = Field(default=None, alias="title", description="A short title for the assessment for use in displaying and selecting.") - citeAsReference_field: ReferenceModel = Field(default=None, alias="citeAsReference", description="Display of or reference to the bibliographic citation of the comment, classifier, or rating.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the artifact assessment was published. The date must change when the disposition changes and it must change if the workflow status code changes. In addition, it should change when the substantive content of the artifact assessment changes.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the artifact assessment and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the artifact assessment.") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - artifactReference_field: ReferenceModel = Field(default=None, alias="artifactReference", description="A reference to a resource, canonical resource, or non-FHIR resource which the comment or assessment is about.") - content_field: List[ArtifactAssessment_ContentModel] = Field(default_factory=list, alias="content", description="A component comment, classifier, or rating of the artifact.") - workflowStatus_field: codeModel = Field(default=None, alias="workflowStatus", description="Indicates the workflow status of the comment or change request.") - disposition_field: codeModel = Field(default=None, alias="disposition", description="Indicates the disposition of the responsible party to the comment or change request.") - -class ArtifactAssessment_ContentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - informationType_field: codeModel = Field(default=None, alias="informationType", description="The type of information this component of the content represents.") - summary_field: markdownModel = Field(default=None, alias="summary", description="A brief summary of the content of this component.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates what type of content this component represents.") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Represents a rating, classifier, or assessment of the artifact.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="A quantitative rating of the artifact.") - author_field: ReferenceModel = Field(default=None, alias="author", description="Indicates who or what authored the content.") - path_field: List[uriModel] = Field(default_factory=list, alias="path", description="A URI that points to what the comment is about, such as a line of text in the CQL, or a specific element in a resource.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Additional related artifacts that provide supporting documentation, additional evidence, or further information related to the content.") - freeToShare_field: booleanModel = Field(default=None, alias="freeToShare", description="Acceptable to publicly share the comment, classifier or rating.") - component_field: List[ArtifactAssessment_ContentModel] = Field(default_factory=list, alias="component", description="If the informationType is container, the components of the content.") - -class AuditEventModel(BaseModel): - resourceType_field: str = "AuditEvent" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Classification of the type of event.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what happened. The most specific code for the event.") - action_field: codeModel = Field(default=None, alias="action", description="Indicator for type of action performed during the event that generated the audit.") - severity_field: codeModel = Field(default=None, alias="severity", description="Indicates and enables segmentation of various severity including debugging from critical.") - occurredPeriod_field: PeriodModel = Field(default=None, alias="occurredPeriod", description="The time or period during which the activity occurred.") - recorded_field: instantModel = Field(default=None, alias="recorded", description="The time when the event was recorded.") - outcome_field: AuditEvent_OutcomeModel = Field(default=None, alias="outcome", description="Indicates whether the event succeeded or failed. A free text descripiton can be given in outcome.text.") - authorization_field: List[CodeableConceptModel] = Field(default_factory=list, alias="authorization", description="The authorization (e.g., PurposeOfUse) that was used during the event being recorded.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).") - agent_field: List[AuditEvent_AgentModel] = Field(default_factory=list, alias="agent", description="An actor taking an active role in the event or activity that is logged.") - source_field: AuditEvent_SourceModel = Field(default=None, alias="source", description="The actor that is reporting the event.") - entity_field: List[AuditEvent_EntityModel] = Field(default_factory=list, alias="entity", description="Specific instances of data or objects that have been accessed.") - -class AuditEvent_OutcomeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodingModel = Field(default=None, alias="code", description="Indicates whether the event succeeded or failed.") - detail_field: List[CodeableConceptModel] = Field(default_factory=list, alias="detail", description="Additional details about the error. This may be a text description of the error or a system code that identifies the error.") - -class AuditEvent_AgentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The Functional Role of the user when performing the event.") - role_field: List[CodeableConceptModel] = Field(default_factory=list, alias="role", description="The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.") - who_field: ReferenceModel = Field(default=None, alias="who", description="Reference to who this agent is that was involved in the event.") - requestor_field: booleanModel = Field(default=None, alias="requestor", description="Indicator that the user is or is not the requestor, or initiator, for the event being audited.") - location_field: ReferenceModel = Field(default=None, alias="location", description="Where the agent location is known, the agent location when the event occurred.") - policy_field: List[uriModel] = Field(default_factory=list, alias="policy", description="Where the policy(ies) are known that authorized the agent participation in the event. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used.") - networkReference_field: ReferenceModel = Field(default=None, alias="networkReference", description="When the event utilizes a network there should be an agent describing the local system, and an agent describing remote system, with the network interface details.") - authorization_field: List[CodeableConceptModel] = Field(default_factory=list, alias="authorization", description="The authorization (e.g., PurposeOfUse) that was used during the event being recorded.") - -class AuditEvent_SourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - site_field: ReferenceModel = Field(default=None, alias="site", description="Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group.") - observer_field: ReferenceModel = Field(default=None, alias="observer", description="Identifier of the source where the event was detected.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Code specifying the type of source where event originated.") - -class AuditEvent_EntityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - what_field: ReferenceModel = Field(default=None, alias="what", description="Identifies a specific instance of the entity. The reference should be version specific. This is allowed to be a Parameters resource.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Code representing the role the entity played in the event being audited.") - securityLabel_field: List[CodeableConceptModel] = Field(default_factory=list, alias="securityLabel", description="Security labels for the identified entity.") - query_field: stringModel = Field(default=None, alias="query", description="The query parameters for a query-type entities.") - detail_field: List[AuditEvent_DetailModel] = Field(default_factory=list, alias="detail", description="Tagged value pairs for conveying additional information about the entity.") - agent_field: List[AuditEvent_AgentModel] = Field(default_factory=list, alias="agent", description="The entity is attributed to an agent to express the agent's responsibility for that entity in the activity. This is most used to indicate when persistence media (the entity) are used by an agent. For example when importing data from a device, the device would be described in an entity, and the user importing data from that media would be indicated as the entity.agent.") - -class AuditEvent_DetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of extra detail provided in the value.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the extra detail.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the extra detail.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the extra detail.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the extra detail.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the extra detail.") - -class BasicModel(BaseModel): - resourceType_field: str = "Basic" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier assigned to the resource for business purposes, outside the context of FHIR.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identifies the 'type' of resource - equivalent to the resource name for other resources.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient, practitioner, device or any other resource that is the focus of this resource.") - created_field: dateTimeModel = Field(default=None, alias="created", description="Identifies when the resource was first created.") - author_field: ReferenceModel = Field(default=None, alias="author", description="Indicates who was responsible for creating the resource instance.") - -class BinaryModel(BaseModel): - resourceType_field: str = "Binary" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - contentType_field: codeModel = Field(default=None, alias="contentType", description="MimeType of the binary content represented as a standard MimeType (BCP 13).") - securityContext_field: ReferenceModel = Field(default=None, alias="securityContext", description="This element identifies another resource that can be used as a proxy of the security sensitivity to use when deciding and enforcing access control rules for the Binary resource. Given that the Binary resource contains very few elements that can be used to determine the sensitivity of the data and relationships to individuals, the referenced resource stands in as a proxy equivalent for this purpose. This referenced resource may be related to the Binary (e.g. DocumentReference), or may be some non-related Resource purely as a security proxy. E.g. to identify that the binary resource relates to a patient, and access should only be granted to applications that have access to the patient.") - data_field: stringModel = Field(default=None, alias="data", description="The actual content, base64 encoded.") - -class BiologicallyDerivedProductModel(BaseModel): - resourceType_field: str = "BiologicallyDerivedProduct" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - productCategory_field: CodingModel = Field(default=None, alias="productCategory", description="Broad category of this product.") - productCode_field: CodeableConceptModel = Field(default=None, alias="productCode", description="A codified value that systematically supports characterization and classification of medical products of human origin inclusive of processing conditions such as additives, volumes and handling conditions.") - parent_field: List[ReferenceModel] = Field(default_factory=list, alias="parent", description="Parent product (if any) for this biologically-derived product.") - request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request to obtain and/or infuse this biologically derived product.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a biologically derived product. Note: This is a business identifier, not a resource identifier.") - biologicalSourceEvent_field: IdentifierModel = Field(default=None, alias="biologicalSourceEvent", description="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.") - processingFacility_field: List[ReferenceModel] = Field(default_factory=list, alias="processingFacility", description="Processing facilities responsible for the labeling and distribution of this biologically derived product.") - division_field: stringModel = Field(default=None, alias="division", description="A unique identifier for an aliquot of a product. Used to distinguish individual aliquots of a product carrying the same biologicalSource and productCode identifiers.") - productStatus_field: CodingModel = Field(default=None, alias="productStatus", description="Whether the product is currently available.") - expirationDate_field: dateTimeModel = Field(default=None, alias="expirationDate", description="Date, and where relevant time, of expiration.") - collection_field: BiologicallyDerivedProduct_CollectionModel = Field(default=None, alias="collection", description="How this product was collected.") - storageTempRequirements_field: RangeModel = Field(default=None, alias="storageTempRequirements", description="The temperature requirements for storage of the biologically-derived product.") - property_field: List[BiologicallyDerivedProduct_PropertyModel] = Field(default_factory=list, alias="property", description="A property that is specific to this BiologicallyDerviedProduct instance.") - -class BiologicallyDerivedProduct_CollectionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - collector_field: ReferenceModel = Field(default=None, alias="collector", description="Healthcare professional who is performing the collection.") - source_field: ReferenceModel = Field(default=None, alias="source", description="The patient or entity, such as a hospital or vendor in the case of a processed/manipulated/manufactured product, providing the product.") - collectedPeriod_field: PeriodModel = Field(default=None, alias="collectedPeriod", description="Time of product collection.") - -class BiologicallyDerivedProduct_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code that specifies the property. It should reference an established coding system.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Property values.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Property values.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Property values.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Property values.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Property values.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Property values.") - -class BiologicallyDerivedProductDispenseModel(BaseModel): - resourceType_field: str = "BiologicallyDerivedProductDispense" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a biologically derived product dispense. Note: This is a business identifier, not a resource identifier.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The order or request that the dispense is fulfilling. This is a reference to a ServiceRequest resource.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the dispense event.") - originRelationshipType_field: CodeableConceptModel = Field(default=None, alias="originRelationshipType", description="Indicates the relationship between the donor of the biologically derived product and the intended recipient.") - product_field: ReferenceModel = Field(default=None, alias="product", description="A link to a resource identifying the biologically derived product that is being dispensed.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="A link to a resource representing the patient that the product is dispensed for.") - matchStatus_field: CodeableConceptModel = Field(default=None, alias="matchStatus", description="Indicates the type of matching associated with the dispense.") - performer_field: List[BiologicallyDerivedProductDispense_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed an action.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The physical location where the dispense was performed.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of product in the dispense. Quantity will depend on the product being dispensed. Examples are: volume; cell count; concentration.") - preparedDate_field: dateTimeModel = Field(default=None, alias="preparedDate", description="When the product was selected/ matched.") - whenHandedOver_field: dateTimeModel = Field(default=None, alias="whenHandedOver", description="When the product was dispatched for clinical use.") - destination_field: ReferenceModel = Field(default=None, alias="destination", description="Link to a resource identifying the physical location that the product was dispatched to.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes.") - usageInstruction_field: stringModel = Field(default=None, alias="usageInstruction", description="Specific instructions for use.") - -class BiologicallyDerivedProductDispense_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Identifies the function of the performer during the dispense.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Identifies the person responsible for the action.") - -class BodyStructureModel(BaseModel): - resourceType_field: str = "BodyStructure" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for this instance of the anatomical structure.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this body site is in active use.") - morphology_field: CodeableConceptModel = Field(default=None, alias="morphology", description="The kind of structure being represented by the body structure at `BodyStructure.location`. This can define both normal and abnormal morphologies.") - includedStructure_field: List[BodyStructure_IncludedStructureModel] = Field(default_factory=list, alias="includedStructure", description="The anatomical location(s) or region(s) of the specimen, lesion, or body structure.") - excludedStructure_field: List[BodyStructure_IncludedStructureModel] = Field(default_factory=list, alias="excludedStructure", description="The anatomical location(s) or region(s) not occupied or represented by the specimen, lesion, or body structure.") - description_field: markdownModel = Field(default=None, alias="description", description="A summary, characterization or explanation of the body structure.") - image_field: List[AttachmentModel] = Field(default_factory=list, alias="image", description="Image or images used to identify a location.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The person to which the body site belongs.") - -class BodyStructure_IncludedStructureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - structure_field: CodeableConceptModel = Field(default=None, alias="structure", description="Code that represents the included structure.") - laterality_field: CodeableConceptModel = Field(default=None, alias="laterality", description="Code that represents the included structure laterality.") - bodyLandmarkOrientation_field: List[BodyStructure_BodyLandmarkOrientationModel] = Field(default_factory=list, alias="bodyLandmarkOrientation", description="Body locations in relation to a specific body landmark (tatoo, scar, other body structure).") - spatialReference_field: List[ReferenceModel] = Field(default_factory=list, alias="spatialReference", description="XY or XYZ-coordinate orientation for structure.") - qualifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="qualifier", description="Code that represents the included structure qualifier.") - -class BodyStructure_BodyLandmarkOrientationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - landmarkDescription_field: List[CodeableConceptModel] = Field(default_factory=list, alias="landmarkDescription", description="A description of a landmark on the body used as a reference to locate something else.") - clockFacePosition_field: List[CodeableConceptModel] = Field(default_factory=list, alias="clockFacePosition", description="An description of the direction away from a landmark something is located based on a radial clock dial.") - distanceFromLandmark_field: List[BodyStructure_DistanceFromLandmarkModel] = Field(default_factory=list, alias="distanceFromLandmark", description="The distance in centimeters a certain observation is made from a body landmark.") - surfaceOrientation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="surfaceOrientation", description="The surface area a body location is in relation to a landmark.") - -class BodyStructure_DistanceFromLandmarkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - device_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="device", description="An instrument, tool, analyzer, etc. used in the measurement.") - value_field: List[QuantityModel] = Field(default_factory=list, alias="value", description="The measured distance (e.g., in cm) from a body landmark.") - -class BundleModel(BaseModel): - resourceType_field: str = "Bundle" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="A persistent identifier for the bundle that won't change as a bundle is copied from server to server.") - type_field: codeModel = Field(default=None, alias="type", description="Indicates the purpose of this bundle - how it is intended to be used.") - timestamp_field: instantModel = Field(default=None, alias="timestamp", description="The date/time that the bundle was assembled - i.e. when the resources were placed in the bundle.") - total_field: unsignedIntModel = Field(default=None, alias="total", description="If a set of search matches, this is the (potentially estimated) total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle.") - link_field: List[Bundle_LinkModel] = Field(default_factory=list, alias="link", description="A series of links that provide context to this bundle.") - entry_field: List[Bundle_EntryModel] = Field(default_factory=list, alias="entry", description="An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).") - signature_field: SignatureModel = Field(default=None, alias="signature", description="Digital Signature - base64 encoded. XML-DSig or a JWS.") - issues_field: ResourceListModel = Field(default=None, alias="issues", description="Captures issues and warnings that relate to the construction of the Bundle and the content within it.") - -class Bundle_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - relation_field: codeModel = Field(default=None, alias="relation", description="A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1).") - url_field: uriModel = Field(default=None, alias="url", description="The reference details for the link.") - -class Bundle_EntryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - link_field: List[Bundle_LinkModel] = Field(default_factory=list, alias="link", description="A series of links that provide context to this entry.") - fullUrl_field: uriModel = Field(default=None, alias="fullUrl", description="The Absolute URL for the resource. Except for transactions and batches, each entry in a Bundle must have a fullUrl. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. Even when not required, fullUrl MAY be set to a urn:uuid to allow referencing entries in a transaction. The fullUrl can be an arbitrary URI and is not limited to urn:uuid, urn:oid, http, and https. The fullUrl element SHALL have a value except when: ") - resource_field: ResourceListModel = Field(default=None, alias="resource", description="The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type. This is allowed to be a Parameters resource if and only if it is referenced by something else within the Bundle that provides context/meaning.") - search_field: Bundle_SearchModel = Field(default=None, alias="search", description="Information about the search process that lead to the creation of this entry.") - request_field: Bundle_RequestModel = Field(default=None, alias="request", description="Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.") - response_field: Bundle_ResponseModel = Field(default=None, alias="response", description="Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.") - -class Bundle_SearchModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: codeModel = Field(default=None, alias="mode", description="Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.") - score_field: decimalModel = Field(default=None, alias="score", description="When searching, the server's search ranking score for the entry.") - -class Bundle_RequestModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - method_field: codeModel = Field(default=None, alias="method", description="In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred.") - url_field: uriModel = Field(default=None, alias="url", description="The URL for this entry, relative to the root (the address to which the request is posted).") - ifNoneMatch_field: stringModel = Field(default=None, alias="ifNoneMatch", description="If the ETag values match, return a 304 Not Modified status. See the API documentation for [Conditional Read](http.html#cread).") - ifModifiedSince_field: instantModel = Field(default=None, alias="ifModifiedSince", description="Only perform the operation if the last updated date matches. See the API documentation for [Conditional Read](http.html#cread).") - ifMatch_field: stringModel = Field(default=None, alias="ifMatch", description="Only perform the operation if the Etag value matches. For more information, see the API section [Managing Resource Contention](http.html#concurrency).") - ifNoneExist_field: stringModel = Field(default=None, alias="ifNoneExist", description="Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [Conditional Create](http.html#ccreate). This is just the query portion of the URL - what follows the ? (not including the ?).") - -class Bundle_ResponseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - status_field: stringModel = Field(default=None, alias="status", description="The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.") - location_field: uriModel = Field(default=None, alias="location", description="The location header created by processing this operation, populated if the operation returns a location.") - etag_field: stringModel = Field(default=None, alias="etag", description="The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).") - lastModified_field: instantModel = Field(default=None, alias="lastModified", description="The date/time that the resource was modified on the server.") - outcome_field: ResourceListModel = Field(default=None, alias="outcome", description="An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.") - -class CapabilityStatementModel(BaseModel): - resourceType_field: str = "CapabilityStatement" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this capability statement when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this capability statement is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the capability statement is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this CapabilityStatement when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the capability statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the capability statement author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the capability statement. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the capability statement.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this capability statement. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this capability statement is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the capability statement was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the capability statement changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the capability statement.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the capability statement from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate capability statement instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the capability statement is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this capability statement is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the capability statement and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the capability statement.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - kind_field: codeModel = Field(default=None, alias="kind", description="The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).") - instantiates_field: List[canonicalModel] = Field(default_factory=list, alias="instantiates", description="Reference to a canonical URL of another CapabilityStatement that this software implements. This capability statement is a published API description that corresponds to a business service. The server may actually implement a subset of the capability statement it claims to implement, so the capability statement must specify the full capability details.") - imports_field: List[canonicalModel] = Field(default_factory=list, alias="imports", description="Reference to a canonical URL of another CapabilityStatement that this software adds to. The capability statement automatically includes everything in the other statement, and it is not duplicated, though the server may repeat the same resources, interactions and operations to add additional details to them.") - software_field: CapabilityStatement_SoftwareModel = Field(default=None, alias="software", description="Software that is covered by this capability statement. It is used when the capability statement describes the capabilities of a particular software version, independent of an installation.") - implementation_field: CapabilityStatement_ImplementationModel = Field(default=None, alias="implementation", description="Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program.") - fhirVersion_field: codeModel = Field(default=None, alias="fhirVersion", description="The version of the FHIR specification that this CapabilityStatement describes (which SHALL be the same as the FHIR version of the CapabilityStatement itself). There is no default value.") - format_field: List[codeModel] = Field(default_factory=list, alias="format", description="A list of the formats supported by this implementation using their content types.") - patchFormat_field: List[codeModel] = Field(default_factory=list, alias="patchFormat", description="A list of the patch formats supported by this implementation using their content types.") - acceptLanguage_field: List[codeModel] = Field(default_factory=list, alias="acceptLanguage", description="A list of the languages supported by this implementation that are usefully supported in the ```Accept-Language``` header.") - implementationGuide_field: List[canonicalModel] = Field(default_factory=list, alias="implementationGuide", description="A list of implementation guides that the server does (or should) support in their entirety.") - rest_field: List[CapabilityStatement_RestModel] = Field(default_factory=list, alias="rest", description="A definition of the restful capabilities of the solution, if any.") - messaging_field: List[CapabilityStatement_MessagingModel] = Field(default_factory=list, alias="messaging", description="A description of the messaging capabilities of the solution.") - document_field: List[CapabilityStatement_DocumentModel] = Field(default_factory=list, alias="document", description="A document definition.") - -class CapabilityStatement_SoftwareModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Name the software is known by.") - version_field: stringModel = Field(default=None, alias="version", description="The version identifier for the software covered by this statement.") - releaseDate_field: dateTimeModel = Field(default=None, alias="releaseDate", description="Date this version of the software was released.") - -class CapabilityStatement_ImplementationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Information about the specific installation that this capability statement relates to.") - url_field: urlModel = Field(default=None, alias="url", description="An absolute base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.") - custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="The organization responsible for the management of the instance and oversight of the data on the server at the specified URL.") - -class CapabilityStatement_RestModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: codeModel = Field(default=None, alias="mode", description="Identifies whether this portion of the statement is describing the ability to initiate or receive restful operations.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Information about the system's restful capabilities that apply across all applications, such as security.") - security_field: CapabilityStatement_SecurityModel = Field(default=None, alias="security", description="Information about security implementation from an interface perspective - what a client needs to know.") - resource_field: List[CapabilityStatement_ResourceModel] = Field(default_factory=list, alias="resource", description="A specification of the restful capabilities of the solution for a specific resource type.") - interaction_field: List[CapabilityStatement_Interaction1Model] = Field(default_factory=list, alias="interaction", description="A specification of restful operations supported by the system.") - searchParam_field: List[CapabilityStatement_SearchParamModel] = Field(default_factory=list, alias="searchParam", description="Search parameters that are supported for searching all resources for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation. This is only for searches executed against the system-level endpoint.") - operation_field: List[CapabilityStatement_OperationModel] = Field(default_factory=list, alias="operation", description="Definition of an operation or a named query together with its parameters and their meaning and type.") - compartment_field: List[canonicalModel] = Field(default_factory=list, alias="compartment", description="An absolute URI which is a reference to the definition of a compartment that the system supports. The reference is to a CompartmentDefinition resource by its canonical URL .") - -class CapabilityStatement_SecurityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - cors_field: booleanModel = Field(default=None, alias="cors", description="Server adds CORS headers when responding to requests - this enables Javascript applications to use the server.") - service_field: List[CodeableConceptModel] = Field(default_factory=list, alias="service", description="Types of security services that are supported/required by the system.") - description_field: markdownModel = Field(default=None, alias="description", description="General description of how security works.") - -class CapabilityStatement_ResourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="A type of resource exposed via the restful interface.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="A system-wide profile that is applied across *all* instances of the resource supported by the system. For example, if declared on Observation, this profile is the superset of capabilities for laboratory *and* vitals *and* other domains. See further discussion in [Using Profiles](profiling.html#profile-uses).") - supportedProfile_field: List[canonicalModel] = Field(default_factory=list, alias="supportedProfile", description="A list of profiles representing different use cases the system hosts/produces. A supported profile is a statement about the functionality of the data and services provided by the server (or the client) for supported use cases. For example, a system can define and declare multiple Observation profiles for laboratory observations, vital sign observations, etc. By declaring supported profiles, systems provide a way to determine whether individual resources are conformant. See further discussion in [Using Profiles](profiling.html#profile-uses).") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Additional information about the resource type used by the system.") - interaction_field: List[CapabilityStatement_InteractionModel] = Field(default_factory=list, alias="interaction", description="Identifies a restful operation supported by the solution.") - versioning_field: codeModel = Field(default=None, alias="versioning", description="This field is set to no-version to specify that the system does not support (server) or use (client) versioning for this resource type. If this has some other value, the server must at least correctly track and populate the versionId meta-property on resources. If the value is 'versioned-update', then the server supports all the versioning features, including using e-tags for version integrity in the API.") - readHistory_field: booleanModel = Field(default=None, alias="readHistory", description="A flag for whether the server is able to return past versions as part of the vRead operation.") - updateCreate_field: booleanModel = Field(default=None, alias="updateCreate", description="A flag to indicate that the server allows or needs to allow the client to create new identities on the server (that is, the client PUTs to a location where there is no existing resource). Allowing this operation means that the server allows the client to create new identities on the server.") - conditionalCreate_field: booleanModel = Field(default=None, alias="conditionalCreate", description="A flag that indicates that the server supports conditional create.") - conditionalRead_field: codeModel = Field(default=None, alias="conditionalRead", description="A code that indicates how the server supports conditional read.") - conditionalUpdate_field: booleanModel = Field(default=None, alias="conditionalUpdate", description="A flag that indicates that the server supports conditional update.") - conditionalPatch_field: booleanModel = Field(default=None, alias="conditionalPatch", description="A flag that indicates that the server supports conditional patch.") - conditionalDelete_field: codeModel = Field(default=None, alias="conditionalDelete", description="A code that indicates how the server supports conditional delete.") - referencePolicy_field: List[codeModel] = Field(default_factory=list, alias="referencePolicy", description="A set of flags that defines how references are supported.") - searchInclude_field: List[stringModel] = Field(default_factory=list, alias="searchInclude", description="A list of _include values supported by the server.") - searchRevInclude_field: List[stringModel] = Field(default_factory=list, alias="searchRevInclude", description="A list of _revinclude (reverse include) values supported by the server.") - searchParam_field: List[CapabilityStatement_SearchParamModel] = Field(default_factory=list, alias="searchParam", description="Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.") - operation_field: List[CapabilityStatement_OperationModel] = Field(default_factory=list, alias="operation", description="Definition of an operation or a named query together with its parameters and their meaning and type. Consult the definition of the operation for details about how to invoke the operation, and the parameters.") - -class CapabilityStatement_InteractionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Coded identifier of the operation, supported by the system resource.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.") - -class CapabilityStatement_SearchParamModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The label used for the search parameter in this particular system's API - i.e. the 'name' portion of the name-value pair that will appear as part of the search URL. This SHOULD be the same as the SearchParameter.code of the defining SearchParameter. However, it can sometimes differ if necessary to disambiguate when a server supports multiple SearchParameters that happen to share the same code.") - definition_field: canonicalModel = Field(default=None, alias="definition", description="An absolute URI that is a formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter (a reference to [SearchParameter.url](searchparameter-definitions.html#SearchParameter.url)). This element SHALL be populated if the search parameter refers to a SearchParameter defined by the FHIR core specification or externally defined IGs.") - type_field: codeModel = Field(default=None, alias="type", description="The type of value a search parameter refers to, and how the content is interpreted.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.") - -class CapabilityStatement_OperationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The name of the operation or query. For an operation, this name is prefixed with $ and used in the URL. For a query, this is the name used in the _query parameter when the query is called. This SHOULD be the same as the OperationDefinition.code of the defining OperationDefinition. However, it can sometimes differ if necessary to disambiguate when a server supports multiple OperationDefinition that happen to share the same code.") - definition_field: canonicalModel = Field(default=None, alias="definition", description="Where the formal definition can be found. If a server references the base definition of an Operation (i.e. from the specification itself such as ```http://hl7.org/fhir/OperationDefinition/ValueSet-expand```), that means it supports the full capabilities of the operation - e.g. both GET and POST invocation. If it only supports a subset, it must define its own custom [OperationDefinition](operationdefinition.html#) with a 'base' of the original OperationDefinition. The custom definition would describe the specific subset of functionality supported.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation that describes anything special about the operation behavior, possibly detailing different behavior for system, type and instance-level invocation of the operation.") - -class CapabilityStatement_Interaction1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A coded identifier of the operation, supported by the system.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.") - -class CapabilityStatement_MessagingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - endpoint_field: List[CapabilityStatement_EndpointModel] = Field(default_factory=list, alias="endpoint", description="An endpoint (network accessible address) to which messages and/or replies are to be sent.") - reliableCache_field: unsignedIntModel = Field(default=None, alias="reliableCache", description="Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the capability statement. For example, the process for becoming an authorized messaging exchange partner.") - supportedMessage_field: List[CapabilityStatement_SupportedMessageModel] = Field(default_factory=list, alias="supportedMessage", description="References to message definitions for messages this system can send or receive.") - -class CapabilityStatement_EndpointModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - protocol_field: CodingModel = Field(default=None, alias="protocol", description="A list of the messaging transport protocol(s) identifiers, supported by this endpoint.") - address_field: urlModel = Field(default=None, alias="address", description="The network address of the endpoint. For solutions that do not use network addresses for routing, it can be just an identifier.") - -class CapabilityStatement_SupportedMessageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: codeModel = Field(default=None, alias="mode", description="The mode of this event declaration - whether application is sender or receiver.") - definition_field: canonicalModel = Field(default=None, alias="definition", description="Points to a message definition that identifies the messaging event, message structure, allowed responses, etc.") - -class CapabilityStatement_DocumentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: codeModel = Field(default=None, alias="mode", description="Mode of this document declaration - whether an application is a producer or consumer.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="A description of how the application supports or uses the specified document profile. For example, when documents are created, what action is taken with consumed documents, etc.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="A profile on the document Bundle that constrains which resources are present, and their contents.") - -class CarePlanModel(BaseModel): - resourceType_field: str = "CarePlan" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this care plan by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A higher-level request resource (i.e. a plan, proposal or order) that is fulfilled in whole or in part by this care plan.") - replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Completed or terminated care plan whose function is taken by this new care plan.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger care plan of which this particular care plan is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the care plan and where the care plan fits into the workflow chain.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Identifies what kind of plan this is to support differentiation between multiple co-existing plans; e.g. Home health, psychiatric, asthma, disease management, wellness plan, etc.") - title_field: stringModel = Field(default=None, alias="title", description="Human-friendly name for the care plan.") - description_field: stringModel = Field(default=None, alias="description", description="A description of the scope and nature of the plan.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient or group whose intended care is described by the plan.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this CarePlan was created or to which the creation of this record is tightly associated.") - period_field: PeriodModel = Field(default=None, alias="period", description="Indicates when the plan did (or is intended to) come into effect and end.") - created_field: dateTimeModel = Field(default=None, alias="created", description="Represents when this particular CarePlan record was created in the system, which is often a system-generated date.") - custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="When populated, the custodian is responsible for the care plan. The care plan is attributed to the custodian.") - contributor_field: List[ReferenceModel] = Field(default_factory=list, alias="contributor", description="Identifies the individual(s), organization or device who provided the contents of the care plan.") - careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.") - addresses_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="addresses", description="Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.") - supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Identifies portions of the patient's record that specifically influenced the formation of the plan. These might include comorbidities, recent procedures, limitations, recent assessments, etc.") - goal_field: List[ReferenceModel] = Field(default_factory=list, alias="goal", description="Describes the intended objective(s) of carrying out the care plan.") - activity_field: List[CarePlan_ActivityModel] = Field(default_factory=list, alias="activity", description="Identifies an action that has occurred or is a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring that has occurred, education etc.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="General notes about the care plan not covered elsewhere.") - -class CarePlan_ActivityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - performedActivity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="performedActivity", description="Identifies the activity that was performed. For example, an activity could be patient education, exercise, or a medication administration. The reference to an event resource, such as Procedure or Encounter or Observation, represents the activity that was performed. The requested activity can be conveyed using the CarePlan.activity.plannedActivityReference (a reference to a “request” resource).") - progress_field: List[AnnotationModel] = Field(default_factory=list, alias="progress", description="Notes about the adherence/status/progress of the activity.") - plannedActivityReference_field: ReferenceModel = Field(default=None, alias="plannedActivityReference", description="The details of the proposed activity represented in a specific resource.") - -class CareTeamModel(BaseModel): - resourceType_field: str = "CareTeam" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this care team by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates the current state of the care team.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team.") - name_field: stringModel = Field(default=None, alias="name", description="A label for human use intended to distinguish like teams. E.g. the red vs. green trauma teams.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient or group whose intended care is handled by the team.") - period_field: PeriodModel = Field(default=None, alias="period", description="Indicates when the team did (or is intended to) come into effect and end.") - participant_field: List[CareTeam_ParticipantModel] = Field(default_factory=list, alias="participant", description="Identifies all people and organizations who are expected to be involved in the care team.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the care team exists.") - managingOrganization_field: List[ReferenceModel] = Field(default_factory=list, alias="managingOrganization", description="The organization responsible for the care team.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A central contact detail for the care team (that applies to all members).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the CareTeam.") - -class CareTeam_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Indicates specific responsibility of an individual within the care team, such as Primary care physician, Trained social worker counselor, Caregiver, etc.") - member_field: ReferenceModel = Field(default=None, alias="member", description="The specific person or organization who is participating/expected to participate in the care team.") - onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="The organization of the practitioner.") - coveragePeriod_field: PeriodModel = Field(default=None, alias="coveragePeriod", description="When the member is generally available within this care team.") - coverageTiming_field: TimingModel = Field(default=None, alias="coverageTiming", description="When the member is generally available within this care team.") - -class ChargeItemModel(BaseModel): - resourceType_field: str = "ChargeItem" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this event performer or other systems.") - definitionUri_field: List[uriModel] = Field(default_factory=list, alias="definitionUri", description="References the (external) source of pricing information, rules of application for the code this ChargeItem uses.") - definitionCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="definitionCanonical", description="References the source of pricing information, rules of application for the code this ChargeItem uses.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the ChargeItem.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="ChargeItems can be grouped to larger ChargeItems covering the whole set.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies the charge, like a billing code.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual or set of individuals the action is being or was performed on.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This ChargeItem has the details of how the associated Encounter should be billed or otherwise be handled by finance systems.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="Date/time(s) or duration when the charged service was applied.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="Date/time(s) or duration when the charged service was applied.") - performer_field: List[ChargeItem_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed or participated in the charged service.") - performingOrganization_field: ReferenceModel = Field(default=None, alias="performingOrganization", description="The organization performing the service.") - requestingOrganization_field: ReferenceModel = Field(default=None, alias="requestingOrganization", description="The organization requesting the service.") - costCenter_field: ReferenceModel = Field(default=None, alias="costCenter", description="The financial cost center permits the tracking of charge attribution.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Quantity of which the charge item has been serviced.") - bodysite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodysite", description="The anatomical location where the related service has been applied.") - unitPriceComponent_field: MonetaryComponentModel = Field(default=None, alias="unitPriceComponent", description="The unit price of the chargable item.") - totalPriceComponent_field: MonetaryComponentModel = Field(default=None, alias="totalPriceComponent", description="The total price for the chargable item, accounting for the quantity.") - overrideReason_field: CodeableConceptModel = Field(default=None, alias="overrideReason", description="If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action.") - enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="The device, practitioner, etc. who entered the charge item.") - enteredDate_field: dateTimeModel = Field(default=None, alias="enteredDate", description="Date the charge item was entered.") - reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="Describes why the event occurred in coded or textual form.") - service_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="service", description="Indicated the rendered service that caused this charge.") - product_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="product", description="Identifies the device, food, drug or other product being charged either by type code or reference to an instance.") - account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="Account into which this ChargeItems belongs.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the event by the performer, subject or other participants.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Further information supporting this charge.") - -class ChargeItem_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.).") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed or participated in the service.") - -class ChargeItemDefinitionModel(BaseModel): - resourceType_field: str = "ChargeItemDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this charge item definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this charge item definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the charge item definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this charge item definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the charge item definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the charge item definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the ChargeItemDefinition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the charge item definition.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the ChargeItemDefinition.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this charge item definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the charge item definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the charge item definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the charge item definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the charge item definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate charge item definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the charge item definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this charge item definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the charge item definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the charge item definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - derivedFromUri_field: List[uriModel] = Field(default_factory=list, alias="derivedFromUri", description="The URL pointing to an externally-defined charge item definition that is adhered to in whole or in part by this definition.") - partOf_field: List[canonicalModel] = Field(default_factory=list, alias="partOf", description="A larger definition of which this particular definition is a component or step.") - replaces_field: List[canonicalModel] = Field(default_factory=list, alias="replaces", description="As new versions of a protocol or guideline are defined, allows identification of what versions are replaced by a new instance.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The defined billing details in this resource pertain to the given billing code.") - instance_field: List[ReferenceModel] = Field(default_factory=list, alias="instance", description="The defined billing details in this resource pertain to the given product instance(s).") - applicability_field: List[ChargeItemDefinition_ApplicabilityModel] = Field(default_factory=list, alias="applicability", description="Expressions that describe applicability criteria for the billing code.") - propertyGroup_field: List[ChargeItemDefinition_PropertyGroupModel] = Field(default_factory=list, alias="propertyGroup", description="Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.") - -class ChargeItemDefinition_ApplicabilityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - condition_field: ExpressionModel = Field(default=None, alias="condition", description="An expression that returns true or false, indicating whether the condition is satisfied. When using FHIRPath expressions, the %context environment variable must be replaced at runtime with the ChargeItem resource to which this definition is applied.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the charge item definition content was or is planned to be in active use.") - relatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="relatedArtifact", description="Reference to / quotation of the external source of the group of properties.") - -class ChargeItemDefinition_PropertyGroupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - applicability_field: List[ChargeItemDefinition_ApplicabilityModel] = Field(default_factory=list, alias="applicability", description="Expressions that describe applicability criteria for the priceComponent.") - priceComponent_field: List[MonetaryComponentModel] = Field(default_factory=list, alias="priceComponent", description="The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated.") - -class CitationModel(BaseModel): - resourceType_field: str = "Citation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this citation record when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this citation record when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the citation record when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the citation record author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the citation record. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the citation record.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this summary. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this citation record is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the citation record was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the citation record changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual that published the citation record.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the citation from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate citation record instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the citation record is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this citation is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="Use and/or publishing restrictions for the citation record, not for the cited artifact.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the citation record content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="Who authored or created the citation record.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="Who edited or revised the citation record.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="Who reviewed the citation record.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="Who endorsed the citation record.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Artifact related to the citation record.") - summary_field: List[Citation_SummaryModel] = Field(default_factory=list, alias="summary", description="A human-readable display of key concepts to represent the citation.") - classification_field: List[Citation_ClassificationModel] = Field(default_factory=list, alias="classification", description="The assignment to an organizing scheme.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Used for general notes and annotations not coded elsewhere.") - currentState_field: List[CodeableConceptModel] = Field(default_factory=list, alias="currentState", description="The status of the citation record.") - statusDate_field: List[Citation_StatusDateModel] = Field(default_factory=list, alias="statusDate", description="The state or status of the citation record paired with an effective date or period for that state.") - citedArtifact_field: Citation_CitedArtifactModel = Field(default=None, alias="citedArtifact", description="The article or artifact being described.") - -class Citation_SummaryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - style_field: CodeableConceptModel = Field(default=None, alias="style", description="Format for display of the citation summary.") - text_field: markdownModel = Field(default=None, alias="text", description="The human-readable display of the citation summary.") - -class Citation_ClassificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of classifier (e.g. publication type, keyword).") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="The specific classification value.") - -class Citation_StatusDateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - activity_field: CodeableConceptModel = Field(default=None, alias="activity", description="The state or status of the citation record (that will be paired with the period).") - actual_field: booleanModel = Field(default=None, alias="actual", description="Whether the status date is actual (has occurred) or expected (estimated or anticipated).") - period_field: PeriodModel = Field(default=None, alias="period", description="When the status started and/or ended.") - -class Citation_CitedArtifactModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify the cited artifact when it is represented in other formats, or referenced in a specification, model, design or an instance.") - relatedIdentifier_field: List[IdentifierModel] = Field(default_factory=list, alias="relatedIdentifier", description="A formal identifier that is used to identify things closely related to the cited artifact.") - dateAccessed_field: dateTimeModel = Field(default=None, alias="dateAccessed", description="When the cited artifact was accessed.") - version_field: Citation_VersionModel = Field(default=None, alias="version", description="The defined version of the cited artifact.") - currentState_field: List[CodeableConceptModel] = Field(default_factory=list, alias="currentState", description="The status of the cited artifact.") - statusDate_field: List[Citation_StatusDate1Model] = Field(default_factory=list, alias="statusDate", description="An effective date or period, historical or future, actual or expected, for a status of the cited artifact.") - title_field: List[Citation_TitleModel] = Field(default_factory=list, alias="title", description="The title details of the article or artifact.") - abstract_field: List[Citation_AbstractModel] = Field(default_factory=list, alias="abstract", description="The abstract may be used to convey article-contained abstracts, externally-created abstracts, or other descriptive summaries.") - part_field: Citation_PartModel = Field(default=None, alias="part", description="The component of the article or artifact.") - relatesTo_field: List[Citation_RelatesToModel] = Field(default_factory=list, alias="relatesTo", description="The artifact related to the cited artifact.") - publicationForm_field: List[Citation_PublicationFormModel] = Field(default_factory=list, alias="publicationForm", description="If multiple, used to represent alternative forms of the article that are not separate citations.") - webLocation_field: List[Citation_WebLocationModel] = Field(default_factory=list, alias="webLocation", description="Used for any URL for the article or artifact cited.") - classification_field: List[Citation_Classification1Model] = Field(default_factory=list, alias="classification", description="The assignment to an organizing scheme.") - contributorship_field: Citation_ContributorshipModel = Field(default=None, alias="contributorship", description="This element is used to list authors and other contributors, their contact information, specific contributions, and summary statements.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any additional information or content for the article or artifact.") - -class Citation_VersionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - value_field: stringModel = Field(default=None, alias="value", description="The version number or other version identifier.") - baseCitation_field: ReferenceModel = Field(default=None, alias="baseCitation", description="Citation for the main version of the cited artifact.") - -class Citation_StatusDate1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - activity_field: CodeableConceptModel = Field(default=None, alias="activity", description="A definition of the status associated with a date or period.") - actual_field: booleanModel = Field(default=None, alias="actual", description="Either occurred or expected.") - period_field: PeriodModel = Field(default=None, alias="period", description="When the status started and/or ended.") - -class Citation_TitleModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Used to express the reason for or classification of the title.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="Used to express the specific language of the title.") - text_field: markdownModel = Field(default=None, alias="text", description="The title of the article or artifact.") - -class Citation_AbstractModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Used to express the reason for or classification of the abstract.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="Used to express the specific language of the abstract.") - text_field: markdownModel = Field(default=None, alias="text", description="Abstract content.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright notice for the abstract.") - -class Citation_PartModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of component.") - value_field: stringModel = Field(default=None, alias="value", description="The specification of the component.") - baseCitation_field: ReferenceModel = Field(default=None, alias="baseCitation", description="The citation for the full article or artifact.") - -class Citation_RelatesToModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of relationship to the related artifact.") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Provides additional classifiers of the related artifact.") - label_field: stringModel = Field(default=None, alias="label", description="A short label that can be used to reference the related artifact from elsewhere in the containing artifact, such as a footnote index.") - display_field: stringModel = Field(default=None, alias="display", description="A brief description of the document or knowledge resource being referenced, suitable for display to a consumer.") - citation_field: markdownModel = Field(default=None, alias="citation", description="A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format.") - document_field: AttachmentModel = Field(default=None, alias="document", description="The document being referenced, represented as an attachment. Do not use this element if using the resource element to provide the canonical to the related artifact.") - resource_field: canonicalModel = Field(default=None, alias="resource", description="The related artifact, such as a library, value set, profile, or other knowledge resource.") - resourceReference_field: ReferenceModel = Field(default=None, alias="resourceReference", description="The related artifact, if the artifact is not a canonical resource, or a resource reference to a canonical resource.") - -class Citation_PublicationFormModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - publishedIn_field: Citation_PublishedInModel = Field(default=None, alias="publishedIn", description="The collection the cited article or artifact is published in.") - citedMedium_field: CodeableConceptModel = Field(default=None, alias="citedMedium", description="Describes the form of the medium cited. Common codes are Internet or Print. The CitedMedium value set has 6 codes. The codes internet, print, and offline-digital-storage are the common codes for a typical publication form, though internet and print are more common for study citations. Three additional codes (each appending one of the primary codes with -without-issue are used for situations when a study is published both within an issue (of a periodical release as commonly done for journals) AND is published separately from the issue (as commonly done with early online publication), to represent specific identification of the publication form not associated with the issue.") - volume_field: stringModel = Field(default=None, alias="volume", description="Volume number of journal or other collection in which the article is published.") - issue_field: stringModel = Field(default=None, alias="issue", description="Issue, part or supplement of journal or other collection in which the article is published.") - articleDate_field: dateTimeModel = Field(default=None, alias="articleDate", description="The date the article was added to the database, or the date the article was released.") - publicationDateText_field: stringModel = Field(default=None, alias="publicationDateText", description="Text representation of the date on which the issue of the cited artifact was published.") - publicationDateSeason_field: stringModel = Field(default=None, alias="publicationDateSeason", description="Spring, Summer, Fall/Autumn, Winter.") - lastRevisionDate_field: dateTimeModel = Field(default=None, alias="lastRevisionDate", description="The date the article was last revised or updated in the database.") - language_field: List[CodeableConceptModel] = Field(default_factory=list, alias="language", description="The language or languages in which this form of the article is published.") - accessionNumber_field: stringModel = Field(default=None, alias="accessionNumber", description="Entry number or identifier for inclusion in a database.") - pageString_field: stringModel = Field(default=None, alias="pageString", description="Used for full display of pagination.") - firstPage_field: stringModel = Field(default=None, alias="firstPage", description="Used for isolated representation of first page.") - lastPage_field: stringModel = Field(default=None, alias="lastPage", description="Used for isolated representation of last page.") - pageCount_field: stringModel = Field(default=None, alias="pageCount", description="Actual or approximate number of pages or screens. Distinct from reporting the page numbers.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright notice for the full article or artifact.") - -class Citation_PublishedInModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Kind of container (e.g. Periodical, database, or book).") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Journal identifiers include ISSN, ISO Abbreviation and NLMuniqueID; Book identifiers include ISBN.") - title_field: stringModel = Field(default=None, alias="title", description="Name of the database or title of the book or journal.") - publisher_field: ReferenceModel = Field(default=None, alias="publisher", description="Name of or resource describing the publisher.") - publisherLocation_field: stringModel = Field(default=None, alias="publisherLocation", description="Geographic location of the publisher.") - -class Citation_WebLocationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="A characterization of the object expected at the web location.") - url_field: uriModel = Field(default=None, alias="url", description="The specific URL.") - -class Citation_Classification1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of classifier (e.g. publication type, keyword).") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="The specific classification value.") - artifactAssessment_field: List[ReferenceModel] = Field(default_factory=list, alias="artifactAssessment", description="Complex or externally created classification.") - -class Citation_ContributorshipModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - complete_field: booleanModel = Field(default=None, alias="complete", description="Indicates if the list includes all authors and/or contributors.") - entry_field: List[Citation_EntryModel] = Field(default_factory=list, alias="entry", description="An individual entity named as a contributor, for example in the author list or contributor list.") - summary_field: List[Citation_Summary1Model] = Field(default_factory=list, alias="summary", description="Used to record a display of the author/contributor list without separate data element for each list member.") - -class Citation_EntryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - contributor_field: ReferenceModel = Field(default=None, alias="contributor", description="The identity of the individual contributor.") - forenameInitials_field: stringModel = Field(default=None, alias="forenameInitials", description="For citation styles that use initials.") - affiliation_field: List[ReferenceModel] = Field(default_factory=list, alias="affiliation", description="Organization affiliated with the contributor.") - contributionType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="contributionType", description="This element identifies the specific nature of an individual’s contribution with respect to the cited work.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role of the contributor (e.g. author, editor, reviewer, funder).") - contributionInstance_field: List[Citation_ContributionInstanceModel] = Field(default_factory=list, alias="contributionInstance", description="Contributions with accounting for time or number.") - correspondingContact_field: booleanModel = Field(default=None, alias="correspondingContact", description="Whether the contributor is the corresponding contributor for the role.") - rankingOrder_field: positiveIntModel = Field(default=None, alias="rankingOrder", description="Provides a numerical ranking to represent the degree of contributorship relative to other contributors, such as 1 for first author and 2 for second author.") - -class Citation_ContributionInstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The specific contribution.") - time_field: dateTimeModel = Field(default=None, alias="time", description="The time that the contribution was made.") - -class Citation_Summary1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Used most commonly to express an author list or a contributorship statement.") - style_field: CodeableConceptModel = Field(default=None, alias="style", description="The format for the display string, such as author last name with first letter capitalized followed by forename initials.") - source_field: CodeableConceptModel = Field(default=None, alias="source", description="Used to code the producer or rule for creating the display string.") - value_field: markdownModel = Field(default=None, alias="value", description="The display string for the author list, contributor list, or contributorship statement.") - -class ClaimModel(BaseModel): - resourceType_field: str = "Claim" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this claim.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of claim, e.g. oral, pharmacy, vision, institutional, professional.") - subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") - use_field: codeModel = Field(default=None, alias="use", description="A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party to whom the professional services and/or products have been supplied or are being considered and for whom actual or forecast reimbursement is sought.") - billablePeriod_field: PeriodModel = Field(default=None, alias="billablePeriod", description="The period for which charges are being submitted.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") - enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Individual who created the claim, predetermination or preauthorization.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who is target of the request.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="The provider which is responsible for the claim, predetermination or preauthorization.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="The provider-required urgency of processing the request. Typical values include: stat, normal, deferred.") - fundsReserve_field: CodeableConceptModel = Field(default=None, alias="fundsReserve", description="A code to indicate whether and for whom funds are to be reserved for future claims.") - related_field: List[Claim_RelatedModel] = Field(default_factory=list, alias="related", description="Other claims which are related to this claim such as prior submissions or claims for related services or for the same event.") - prescription_field: ReferenceModel = Field(default=None, alias="prescription", description="Prescription is the document/authorization given to the claim author for them to provide products and services for which consideration (reimbursement) is sought. Could be a RX for medications, an 'order' for oxygen or wheelchair or physiotherapy treatments.") - originalPrescription_field: ReferenceModel = Field(default=None, alias="originalPrescription", description="Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products.") - payee_field: Claim_PayeeModel = Field(default=None, alias="payee", description="The party to be reimbursed for cost of the products and services according to the terms of the policy.") - referral_field: ReferenceModel = Field(default=None, alias="referral", description="The referral information received by the claim author, it is not to be used when the author generates a referral for a patient. A copy of that referral may be provided as supporting information. Some insurers require proof of referral to pay for services or to pay specialist rates for services.") - encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") - facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services were provided.") - diagnosisRelatedGroup_field: CodeableConceptModel = Field(default=None, alias="diagnosisRelatedGroup", description="A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system.") - event_field: List[Claim_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") - careTeam_field: List[Claim_CareTeamModel] = Field(default_factory=list, alias="careTeam", description="The members of the team who provided the products and services.") - supportingInfo_field: List[Claim_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues.") - diagnosis_field: List[Claim_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="Information about diagnoses relevant to the claim items.") - procedure_field: List[Claim_ProcedureModel] = Field(default_factory=list, alias="procedure", description="Procedures performed on the patient relevant to the billing items with the claim.") - insurance_field: List[Claim_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services specified on the claim.") - accident_field: Claim_AccidentModel = Field(default=None, alias="accident", description="Details of an accident which resulted in injuries which required the products and services listed in the claim.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - item_field: List[Claim_ItemModel] = Field(default_factory=list, alias="item", description="A claim line. Either a simple product or service or a 'group' of details which can each be a simple items or groups of sub-details.") - total_field: MoneyModel = Field(default=None, alias="total", description="The total value of the all the items in the claim.") - -class Claim_RelatedModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - claim_field: ReferenceModel = Field(default=None, alias="claim", description="Reference to a related claim.") - relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="A code to convey how the claims are related.") - reference_field: IdentifierModel = Field(default=None, alias="reference", description="An alternate organizational reference to the case or file to which this particular claim pertains.") - -class Claim_PayeeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Party to be reimbursed: subscriber, provider, other.") - party_field: ReferenceModel = Field(default=None, alias="party", description="Reference to the individual or organization to whom any payment will be made.") - -class Claim_EventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") - whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") - -class Claim_CareTeamModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify care team entries.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="Member of the team who provided the product or service.") - responsible_field: booleanModel = Field(default=None, alias="responsible", description="The party who is billing and/or responsible for the claimed products or services.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team.") - specialty_field: CodeableConceptModel = Field(default=None, alias="specialty", description="The specialization of the practitioner or provider which is applicable for this service.") - -class Claim_SupportingInfoModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify supporting information entries.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="The general class of the information supplied: information; exception; accident, employment; onset, etc.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient for which care is sought.") - timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="The date when or period to which this information refers.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Provides the reason in the situation where a reason code is required in addition to the content.") - -class Claim_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify diagnosis entries.") - diagnosisCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="diagnosisCodeableConcept", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") - diagnosisReference_field: ReferenceModel = Field(default=None, alias="diagnosisReference", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") - onAdmission_field: CodeableConceptModel = Field(default=None, alias="onAdmission", description="Indication of whether the diagnosis was present on admission to a facility.") - -class Claim_ProcedureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify procedure entries.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Date and optionally time the procedure was performed.") - procedureCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="procedureCodeableConcept", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") - procedureReference_field: ReferenceModel = Field(default=None, alias="procedureReference", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - -class Claim_InsuranceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order.") - focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The business identifier to be used when the claim is sent for adjudication against this insurance policy.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") - businessArrangement_field: stringModel = Field(default=None, alias="businessArrangement", description="A business agreement number established between the provider and the insurer for special business processing purposes.") - preAuthRef_field: List[stringModel] = Field(default_factory=list, alias="preAuthRef", description="Reference numbers previously provided by the insurer to the provider to be quoted on subsequent claims containing services or products related to the prior authorization.") - claimResponse_field: ReferenceModel = Field(default=None, alias="claimResponse", description="The result of the adjudication of the line items for the Coverage specified in this insurance.") - -class Claim_AccidentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - date_field: dateModel = Field(default=None, alias="date", description="Date of an accident event related to the products and services contained in the claim.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers.") - locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="The physical location of the accident event.") - locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="The physical location of the accident event.") - -class Claim_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - careTeamSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="careTeamSequence", description="CareTeam members related to this service or product.") - diagnosisSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="diagnosisSequence", description="Diagnosis applicable for this service or product.") - procedureSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="procedureSequence", description="Procedures applicable for this service or product.") - informationSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="informationSequence", description="Exceptions, special conditions and supporting information applicable for this service or product.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") - locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") - locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") - locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item. Net = unit price * quantity * factor.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - bodySite_field: List[Claim_BodySiteModel] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") - encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") - detail_field: List[Claim_DetailModel] = Field(default_factory=list, alias="detail", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") - -class Claim_BodySiteModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") - subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") - -class Claim_DetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item.detail. Net = unit price * quantity * factor.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - subDetail_field: List[Claim_SubDetailModel] = Field(default_factory=list, alias="subDetail", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") - -class Claim_SubDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for line item.detail.subDetail. Net = unit price * quantity * factor.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - -class ClaimResponseModel(BaseModel): - resourceType_field: str = "ClaimResponse" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this claim response.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") - subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") - use_field: codeModel = Field(default=None, alias="use", description="A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for facast reimbursement is sought.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The party responsible for authorization, adjudication and reimbursement.") - requestor_field: ReferenceModel = Field(default=None, alias="requestor", description="The provider which is responsible for the claim, predetermination or preauthorization.") - request_field: ReferenceModel = Field(default=None, alias="request", description="Original request resource reference.") - outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of the claim, predetermination, or preauthorization processing.") - decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") - disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the adjudication.") - preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") - preAuthPeriod_field: PeriodModel = Field(default=None, alias="preAuthPeriod", description="The time frame during which this authorization is effective.") - event_field: List[ClaimResponse_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") - payeeType_field: CodeableConceptModel = Field(default=None, alias="payeeType", description="Type of Party to be reimbursed: subscriber, provider, other.") - encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") - diagnosisRelatedGroup_field: CodeableConceptModel = Field(default=None, alias="diagnosisRelatedGroup", description="A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system.") - item_field: List[ClaimResponse_ItemModel] = Field(default_factory=list, alias="item", description="A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details.") - addItem_field: List[ClaimResponse_AddItemModel] = Field(default_factory=list, alias="addItem", description="The first-tier service adjudications for payor added product or service lines.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results which are presented at the header level rather than at the line-item or add-item levels.") - total_field: List[ClaimResponse_TotalModel] = Field(default_factory=list, alias="total", description="Categorized monetary totals for the adjudication.") - payment_field: ClaimResponse_PaymentModel = Field(default=None, alias="payment", description="Payment details for the adjudication of the claim.") - fundsReserve_field: CodeableConceptModel = Field(default=None, alias="fundsReserve", description="A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom.") - formCode_field: CodeableConceptModel = Field(default=None, alias="formCode", description="A code for the form to be used for printing the content.") - form_field: AttachmentModel = Field(default=None, alias="form", description="The actual form, by reference or inclusion, for printing the content or an EOB.") - processNote_field: List[ClaimResponse_ProcessNoteModel] = Field(default_factory=list, alias="processNote", description="A note that describes or explains adjudication results in a human readable form.") - communicationRequest_field: List[ReferenceModel] = Field(default_factory=list, alias="communicationRequest", description="Request for additional supporting or authorizing information.") - insurance_field: List[ClaimResponse_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services specified on the claim.") - error_field: List[ClaimResponse_ErrorModel] = Field(default_factory=list, alias="error", description="Errors encountered during the processing of the adjudication.") - -class ClaimResponse_EventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") - whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") - -class ClaimResponse_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemSequence_field: positiveIntModel = Field(default=None, alias="itemSequence", description="A number to uniquely reference the claim item entries.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item.") - detail_field: List[ClaimResponse_DetailModel] = Field(default_factory=list, alias="detail", description="A claim detail. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") - -class ClaimResponse_ReviewOutcomeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") - reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="The reasons for the result of the claim, predetermination, or preauthorization adjudication.") - preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") - preAuthPeriod_field: PeriodModel = Field(default=None, alias="preAuthPeriod", description="The time frame during which this authorization is effective.") - -class ClaimResponse_AdjudicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include the value submitted, maximum values or percentages allowed or payable under the plan, amounts that: the patient is responsible for in aggregate or pertaining to this item; amounts paid by other coverages; and, the benefit payable for this item.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="A code supporting the understanding of the adjudication result and explaining variance from expected amount.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary amount associated with the category.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="A non-monetary value associated with the category. Mutually exclusive to the amount element above.") - -class ClaimResponse_DetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - detailSequence_field: positiveIntModel = Field(default=None, alias="detailSequence", description="A number to uniquely reference the claim detail entry.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - subDetail_field: List[ClaimResponse_SubDetailModel] = Field(default_factory=list, alias="subDetail", description="A sub-detail adjudication of a simple product or service.") - -class ClaimResponse_SubDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - subDetailSequence_field: positiveIntModel = Field(default=None, alias="subDetailSequence", description="A number to uniquely reference the claim sub-detail entry.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - -class ClaimResponse_AddItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="itemSequence", description="Claim items which this service line is intended to replace.") - detailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="detailSequence", description="The sequence number of the details within the claim item which this line is intended to replace.") - subdetailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="subdetailSequence", description="The sequence number of the sub-details within the details within the claim item which this line is intended to replace.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - provider_field: List[ReferenceModel] = Field(default_factory=list, alias="provider", description="The providers who are authorized for the services rendered to the patient.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") - locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") - locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") - locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem. Net = unit price * quantity * factor.") - bodySite_field: List[ClaimResponse_BodySiteModel] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - detail_field: List[ClaimResponse_Detail1Model] = Field(default_factory=list, alias="detail", description="The second-tier service adjudications for payor added services.") - -class ClaimResponse_BodySiteModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") - subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") - -class ClaimResponse_Detail1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem.detail. Net = unit price * quantity * factor.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - subDetail_field: List[ClaimResponse_SubDetail1Model] = Field(default_factory=list, alias="subDetail", description="The third-tier service adjudications for payor added services.") - -class ClaimResponse_SubDetail1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the addItem.detail.subDetail. Net = unit price * quantity * factor.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ClaimResponse_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ClaimResponse_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - -class ClaimResponse_TotalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary total amount associated with the category.") - -class ClaimResponse_PaymentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Whether this represents partial or complete payment of the benefits payable.") - adjustment_field: MoneyModel = Field(default=None, alias="adjustment", description="Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication.") - adjustmentReason_field: CodeableConceptModel = Field(default=None, alias="adjustmentReason", description="Reason for the payment adjustment.") - date_field: dateModel = Field(default=None, alias="date", description="Estimated date the payment will be issued or the actual issue date of payment.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Benefits payable less any payment adjustment.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Issuer's unique identifier for the payment instrument.") - -class ClaimResponse_ProcessNoteModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - number_field: positiveIntModel = Field(default=None, alias="number", description="A number to uniquely identify a note entry.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The business purpose of the note text.") - text_field: stringModel = Field(default=None, alias="text", description="The explanation or description associated with the processing.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="A code to define the language used in the text of the note.") - -class ClaimResponse_InsuranceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order.") - focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") - businessArrangement_field: stringModel = Field(default=None, alias="businessArrangement", description="A business agreement number established between the provider and the insurer for special business processing purposes.") - claimResponse_field: ReferenceModel = Field(default=None, alias="claimResponse", description="The result of the adjudication of the line items for the Coverage specified in this insurance.") - -class ClaimResponse_ErrorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemSequence_field: positiveIntModel = Field(default=None, alias="itemSequence", description="The sequence number of the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure.") - detailSequence_field: positiveIntModel = Field(default=None, alias="detailSequence", description="The sequence number of the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure.") - subDetailSequence_field: positiveIntModel = Field(default=None, alias="subDetailSequence", description="The sequence number of the sub-detail within the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="An error code, from a specified code system, which details why the claim could not be adjudicated.") - expression_field: List[stringModel] = Field(default_factory=list, alias="expression", description="A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.") - -class ClinicalImpressionModel(BaseModel): - resourceType_field: str = "ClinicalImpression" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this clinical impression by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - status_field: codeModel = Field(default=None, alias="status", description="Identifies the workflow status of the assessment.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the ClinicalImpression.") - description_field: stringModel = Field(default=None, alias="description", description="A summary of the context and/or cause of the assessment - why / where it was performed, and what patient events/status prompted it.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group of individuals assessed as part of this record.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this ClinicalImpression was created or to which the creation of this record is tightly associated.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The point in time or period over which the subject was assessed.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Indicates when the documentation of the assessment was complete.") - performer_field: ReferenceModel = Field(default=None, alias="performer", description="The clinician performing the assessment.") - previous_field: ReferenceModel = Field(default=None, alias="previous", description="A reference to the last assessment that was conducted on this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.") - problem_field: List[ReferenceModel] = Field(default_factory=list, alias="problem", description="A list of the relevant problems/conditions for a patient.") - changePattern_field: CodeableConceptModel = Field(default=None, alias="changePattern", description="Change in the status/pattern of a subject's condition since previously assessed, such as worsening, improving, or no change. It is a subjective assessment of the direction of the change.") - protocol_field: List[uriModel] = Field(default_factory=list, alias="protocol", description="Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.") - summary_field: stringModel = Field(default=None, alias="summary", description="A text summary of the investigations and the diagnosis.") - finding_field: List[ClinicalImpression_FindingModel] = Field(default_factory=list, alias="finding", description="Specific findings or diagnoses that were considered likely or relevant to ongoing treatment.") - prognosisCodeableConcept_field: List[CodeableConceptModel] = Field(default_factory=list, alias="prognosisCodeableConcept", description="Estimate of likely outcome.") - prognosisReference_field: List[ReferenceModel] = Field(default_factory=list, alias="prognosisReference", description="RiskAssessment expressing likely outcome.") - supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Information supporting the clinical impression, which can contain investigation results.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Commentary about the impression, typically recorded after the impression itself was made, though supplemental notes by the original author could also appear.") - -class ClinicalImpression_FindingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="Specific text, code or reference for finding or diagnosis, which may include ruled-out or resolved conditions.") - basis_field: stringModel = Field(default=None, alias="basis", description="Which investigations support finding or diagnosis.") - -class ClinicalUseDefinitionModel(BaseModel): - resourceType_field: str = "ClinicalUseDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this issue.") - type_field: codeModel = Field(default=None, alias="type", description="indication | contraindication | interaction | undesirable-effect | warning.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A categorisation of the issue, primarily for dividing warnings into subject heading areas such as Pregnancy and Lactation, Overdose, Effects on Ability to Drive and Use Machines.") - subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The medication, product, substance, device, procedure etc. for which this is an indication.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="Whether this is a current issue or one that has been retired etc.") - contraindication_field: ClinicalUseDefinition_ContraindicationModel = Field(default=None, alias="contraindication", description="Specifics for when this is a contraindication.") - indication_field: ClinicalUseDefinition_IndicationModel = Field(default=None, alias="indication", description="Specifics for when this is an indication.") - interaction_field: ClinicalUseDefinition_InteractionModel = Field(default=None, alias="interaction", description="Specifics for when this is an interaction.") - population_field: List[ReferenceModel] = Field(default_factory=list, alias="population", description="The population group to which this applies.") - library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="Logic used by the clinical use definition.") - undesirableEffect_field: ClinicalUseDefinition_UndesirableEffectModel = Field(default=None, alias="undesirableEffect", description="Describe the possible undesirable effects (negative outcomes) from the use of the medicinal product as treatment.") - warning_field: ClinicalUseDefinition_WarningModel = Field(default=None, alias="warning", description="A critical piece of information about environmental, health or physical risks or hazards that serve as caution to the user. For example 'Do not operate heavy machinery', 'May cause drowsiness', or 'Get medical advice/attention if you feel unwell'.") - -class ClinicalUseDefinition_ContraindicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - diseaseSymptomProcedure_field: CodeableReferenceModel = Field(default=None, alias="diseaseSymptomProcedure", description="The situation that is being documented as contraindicating against this item.") - diseaseStatus_field: CodeableReferenceModel = Field(default=None, alias="diseaseStatus", description="The status of the disease or symptom for the contraindication, for example chronic or metastatic.") - comorbidity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="comorbidity", description="A comorbidity (concurrent condition) or coinfection.") - indication_field: List[ReferenceModel] = Field(default_factory=list, alias="indication", description="The indication which this is a contraidication for.") - applicability_field: ExpressionModel = Field(default=None, alias="applicability", description="An expression that returns true or false, indicating whether the indication is applicable or not, after having applied its other elements.") - otherTherapy_field: List[ClinicalUseDefinition_OtherTherapyModel] = Field(default_factory=list, alias="otherTherapy", description="Information about the use of the medicinal product in relation to other therapies described as part of the contraindication.") - -class ClinicalUseDefinition_OtherTherapyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - relationshipType_field: CodeableConceptModel = Field(default=None, alias="relationshipType", description="The type of relationship between the medicinal product indication or contraindication and another therapy.") - treatment_field: CodeableReferenceModel = Field(default=None, alias="treatment", description="Reference to a specific medication (active substance, medicinal product or class of products, biological, food etc.) as part of an indication or contraindication.") - -class ClinicalUseDefinition_IndicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - diseaseSymptomProcedure_field: CodeableReferenceModel = Field(default=None, alias="diseaseSymptomProcedure", description="The situation that is being documented as an indicaton for this item.") - diseaseStatus_field: CodeableReferenceModel = Field(default=None, alias="diseaseStatus", description="The status of the disease or symptom for the indication, for example chronic or metastatic.") - comorbidity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="comorbidity", description="A comorbidity (concurrent condition) or coinfection as part of the indication.") - intendedEffect_field: CodeableReferenceModel = Field(default=None, alias="intendedEffect", description="The intended effect, aim or strategy to be achieved.") - durationRange_field: RangeModel = Field(default=None, alias="durationRange", description="Timing or duration information, that may be associated with use with the indicated condition e.g. Adult patients suffering from myocardial infarction (from a few days until less than 35 days), ischaemic stroke (from 7 days until less than 6 months).") - undesirableEffect_field: List[ReferenceModel] = Field(default_factory=list, alias="undesirableEffect", description="An unwanted side effect or negative outcome that may happen if you use the drug (or other subject of this resource) for this indication.") - applicability_field: ExpressionModel = Field(default=None, alias="applicability", description="An expression that returns true or false, indicating whether the indication is applicable or not, after having applied its other elements.") - otherTherapy_field: List[ClinicalUseDefinition_OtherTherapyModel] = Field(default_factory=list, alias="otherTherapy", description="Information about the use of the medicinal product in relation to other therapies described as part of the indication.") - -class ClinicalUseDefinition_InteractionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - interactant_field: List[ClinicalUseDefinition_InteractantModel] = Field(default_factory=list, alias="interactant", description="The specific medication, product, food, substance etc. or laboratory test that interacts.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the interaction e.g. drug-drug interaction, drug-food interaction, drug-lab test interaction.") - effect_field: CodeableReferenceModel = Field(default=None, alias="effect", description="The effect of the interaction, for example reduced gastric absorption of primary medication.") - incidence_field: CodeableConceptModel = Field(default=None, alias="incidence", description="The incidence of the interaction, e.g. theoretical, observed.") - management_field: List[CodeableConceptModel] = Field(default_factory=list, alias="management", description="Actions for managing the interaction.") - -class ClinicalUseDefinition_InteractantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="The specific medication, product, food, substance etc. or laboratory test that interacts.") - itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="The specific medication, product, food, substance etc. or laboratory test that interacts.") - -class ClinicalUseDefinition_UndesirableEffectModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - symptomConditionEffect_field: CodeableReferenceModel = Field(default=None, alias="symptomConditionEffect", description="The situation in which the undesirable effect may manifest.") - classification_field: CodeableConceptModel = Field(default=None, alias="classification", description="High level classification of the effect.") - frequencyOfOccurrence_field: CodeableConceptModel = Field(default=None, alias="frequencyOfOccurrence", description="How often the effect is seen.") - -class ClinicalUseDefinition_WarningModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="A textual definition of this warning, with formatting.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A coded or unformatted textual definition of this warning.") - -class CodeSystemModel(BaseModel): - resourceType_field: str = "CodeSystem" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this code system when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this code system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the code system is stored on different servers. This is used in [Coding](datatypes.html#Coding).system.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the code system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the code system author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. This is used in [Coding](datatypes.html#Coding).version.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which CodeSystem is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the code system. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the code system.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this code system. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this code system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the code system was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the code system changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the code system.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the code system from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate code system instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the code system is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this code system is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the code system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the code system.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the CodeSystem content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the CodeSystem. Topics provide a high-level categorization as well as keywords for the CodeSystem that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the CodeSystem.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the CodeSystem.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the CodeSystem.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the CodeSystem for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - caseSensitive_field: booleanModel = Field(default=None, alias="caseSensitive", description="If code comparison is case sensitive when codes within this system are compared to each other.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="Canonical reference to the value set that contains all codes in the code system independent of code status.") - hierarchyMeaning_field: codeModel = Field(default=None, alias="hierarchyMeaning", description="The meaning of the hierarchy of concepts as represented in this resource.") - compositional_field: booleanModel = Field(default=None, alias="compositional", description="The code system defines a compositional (post-coordination) grammar.") - versionNeeded_field: booleanModel = Field(default=None, alias="versionNeeded", description="This flag is used to signify that the code system does not commit to concept permanence across versions. If true, a version must be specified when referencing this code system.") - content_field: codeModel = Field(default=None, alias="content", description="The extent of the content of the code system (the concepts and codes it defines) are represented in this resource instance.") - supplements_field: canonicalModel = Field(default=None, alias="supplements", description="The canonical URL of the code system that this code system supplement is adding designations and properties to.") - count_field: unsignedIntModel = Field(default=None, alias="count", description="The total number of concepts defined by the code system. Where the code system has a compositional grammar, the basis of this count is defined by the system steward.") - filter_field: List[CodeSystem_FilterModel] = Field(default_factory=list, alias="filter", description="A filter that can be used in a value set compose statement when selecting concepts using a filter.") - property_field: List[CodeSystem_PropertyModel] = Field(default_factory=list, alias="property", description="A property defines an additional slot through which additional information can be provided about a concept.") - concept_field: List[CodeSystem_ConceptModel] = Field(default_factory=list, alias="concept", description="Concepts that are in the code system. The concept definitions are inherently hierarchical, but the definitions must be consulted to determine what the meanings of the hierarchical relationships are.") - -class CodeSystem_FilterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="The code that identifies this filter when it is used as a filter in [ValueSet](valueset.html#).compose.include.filter.") - description_field: stringModel = Field(default=None, alias="description", description="A description of how or why the filter is used.") - operator_field: List[codeModel] = Field(default_factory=list, alias="operator", description="A list of operators that can be used with the filter.") - value_field: stringModel = Field(default=None, alias="value", description="A description of what the value for the filter should be.") - -class CodeSystem_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify the property. The code is used internally (in CodeSystem.concept.property.code) and also externally, such as in property filters.") - uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code system.") - description_field: stringModel = Field(default=None, alias="description", description="A description of the property- why it is defined, and how its value might be used.") - type_field: codeModel = Field(default=None, alias="type", description="The type of the property value. Properties of type code contain a code defined by the code system (e.g. a reference to another defined concept).") - -class CodeSystem_ConceptModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code - a text symbol - that uniquely identifies the concept within the code system.") - display_field: stringModel = Field(default=None, alias="display", description="A human readable string that is the recommended default way to present this concept to a user.") - definition_field: stringModel = Field(default=None, alias="definition", description="The formal definition of the concept. The code system resource does not make formal definitions required, because of the prevalence of legacy systems. However, they are highly recommended, as without them there is no formal meaning associated with the concept.") - designation_field: List[CodeSystem_DesignationModel] = Field(default_factory=list, alias="designation", description="Additional representations for the concept - other languages, aliases, specialized purposes, used for particular purposes, etc.") - property_field: List[CodeSystem_Property1Model] = Field(default_factory=list, alias="property", description="A property value for this concept.") - concept_field: List[CodeSystem_ConceptModel] = Field(default_factory=list, alias="concept", description="Defines children of a concept to produce a hierarchy of concepts. The nature of the relationships is variable (is-a/contains/categorizes) - see hierarchyMeaning.") - -class CodeSystem_DesignationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: codeModel = Field(default=None, alias="language", description="The language this designation is defined for.") - use_field: CodingModel = Field(default=None, alias="use", description="A code that details how this designation would be used.") - additionalUse_field: List[CodingModel] = Field(default_factory=list, alias="additionalUse", description="Additional codes that detail how this designation would be used, if there is more than one use.") - value_field: stringModel = Field(default=None, alias="value", description="The text value for this designation.") - -class CodeSystem_Property1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is a reference to CodeSystem.property.code.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this property.") - -class CommunicationModel(BaseModel): - resourceType_field: str = "Communication" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="An order, proposal or plan fulfilled in whole or in part by this Communication.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event (e.g. Communication, Procedure) of which this particular communication is a component or step.") - inResponseTo_field: List[ReferenceModel] = Field(default_factory=list, alias="inResponseTo", description="Prior communication that this communication is in response to.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the transmission.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the Communication.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The type of message conveyed such as alert, notification, reminder, instruction, etc.") - priority_field: codeModel = Field(default=None, alias="priority", description="Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine.") - medium_field: List[CodeableConceptModel] = Field(default_factory=list, alias="medium", description="A channel that was used for this communication (e.g. email, fax).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group that was the focus of this communication.") - topic_field: CodeableConceptModel = Field(default=None, alias="topic", description="Description of the purpose/content, similar to a subject line in an email.") - about_field: List[ReferenceModel] = Field(default_factory=list, alias="about", description="Other resources that pertain to this communication and to which this communication should be associated.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this Communication was created or to which the creation of this record is tightly associated.") - sent_field: dateTimeModel = Field(default=None, alias="sent", description="The time when this communication was sent.") - received_field: dateTimeModel = Field(default=None, alias="received", description="The time when this communication arrived at the destination.") - recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="The entity (e.g. person, organization, clinical information system, care team or device) which is the target of the communication.") - sender_field: ReferenceModel = Field(default=None, alias="sender", description="The entity (e.g. person, organization, clinical information system, or device) which is the source of the communication.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason or justification for the communication.") - payload_field: List[Communication_PayloadModel] = Field(default_factory=list, alias="payload", description="Text, attachment(s), or resource(s) that was communicated to the recipient.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes or commentary about the communication by the sender, receiver or other interested parties.") - -class Communication_PayloadModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="A communicated content (or for multi-part communications, one portion of the communication).") - contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="A communicated content (or for multi-part communications, one portion of the communication).") - contentCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="contentCodeableConcept", description="A communicated content (or for multi-part communications, one portion of the communication).") - -class CommunicationRequestModel(BaseModel): - resourceType_field: str = "CommunicationRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan or proposal that is fulfilled in whole or in part by this request.") - replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Completed or terminated request(s) whose function is taken by this new request.") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the proposal or order.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the CommunicationRequest.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The type of message to be sent such as alert, notification, reminder, instruction, etc.") - priority_field: codeModel = Field(default=None, alias="priority", description="Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true indicates that the CommunicationRequest is asking for the specified action to *not* occur.") - medium_field: List[CodeableConceptModel] = Field(default_factory=list, alias="medium", description="A channel that was used for this communication (e.g. email, fax).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group that is the focus of this communication request.") - about_field: List[ReferenceModel] = Field(default_factory=list, alias="about", description="Other resources that pertain to this communication request and to which this communication request should be associated.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.") - payload_field: List[CommunicationRequest_PayloadModel] = Field(default_factory=list, alias="payload", description="Text, attachment(s), or resource(s) to be communicated to the recipient.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The time when this communication is to occur.") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="For draft requests, indicates the date of initial creation. For requests with other statuses, indicates the date of activation.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The device, individual, or organization who asks for the information to be shared.") - recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.") - informationProvider_field: List[ReferenceModel] = Field(default_factory=list, alias="informationProvider", description="The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the request is being made in coded or textual form.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the request by the requester, sender, recipient, subject or other participants.") - -class CommunicationRequest_PayloadModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="The communicated content (or for multi-part communications, one portion of the communication).") - contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="The communicated content (or for multi-part communications, one portion of the communication).") - contentCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="contentCodeableConcept", description="The communicated content (or for multi-part communications, one portion of the communication).") - -class CompartmentDefinitionModel(BaseModel): - resourceType_field: str = "CompartmentDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this compartment definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this {{title}} when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the capability statement.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this compartment definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the compartment definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the compartment definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the compartment definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the compartment definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate compartment definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this compartment definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - code_field: codeModel = Field(default=None, alias="code", description="Which compartment this definition describes.") - search_field: booleanModel = Field(default=None, alias="search", description="Whether the search syntax is supported,.") - resource_field: List[CompartmentDefinition_ResourceModel] = Field(default_factory=list, alias="resource", description="Information about how a resource is related to the compartment.") - -class CompartmentDefinition_ResourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="The name of a resource supported by the server.") - param_field: List[stringModel] = Field(default_factory=list, alias="param", description="The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="Additional documentation about the resource and compartment.") - startParam_field: uriModel = Field(default=None, alias="startParam", description="Search Parameter for mapping requests made with $everything.start (e.g. on [Patient.$everything](patient-operation-everything.html)).") - endParam_field: uriModel = Field(default=None, alias="endParam", description="Search Parameter for mapping requests made with $everything.end (e.g. on [Patient.$everything](patient-operation-everything.html)).") - -class CompositionModel(BaseModel): - resourceType_field: str = "Composition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.") - version_field: stringModel = Field(default=None, alias="version", description="An explicitly assigned identifer of a variation of the content in the Composition.") - status_field: codeModel = Field(default=None, alias="status", description="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.") - subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="Describes the clinical encounter or type of care this documentation is associated with.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The composition editing time, when the composition was last logically changed by the author.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances.") - author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for the information in the composition, not necessarily who typed it in.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the {{title}}. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="Official human-readable label for the composition.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="For any additional notes.") - attester_field: List[Composition_AttesterModel] = Field(default_factory=list, alias="attester", description="A participant who has attested to the accuracy of the composition/document.") - custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.") - relatesTo_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatesTo", description="Relationships that this composition has with other compositions or documents that already exist.") - event_field: List[Composition_EventModel] = Field(default_factory=list, alias="event", description="The clinical service, such as a colonoscopy or an appendectomy, being documented.") - section_field: List[Composition_SectionModel] = Field(default_factory=list, alias="section", description="The root of the sections that make up the composition.") - -class Composition_AttesterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: CodeableConceptModel = Field(default=None, alias="mode", description="The type of attestation the authenticator offers.") - time_field: dateTimeModel = Field(default=None, alias="time", description="When the composition was attested by the party.") - party_field: ReferenceModel = Field(default=None, alias="party", description="Who attested the composition in the specified way.") - -class Composition_EventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.") - detail_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="detail", description="Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a History and Physical Report in which case the procedure being documented is necessarily a History and Physical act. The events may be included as a code or as a reference to an other resource.") - -class Composition_SectionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code identifying the kind of content contained within the section. This must be consistent with the section title.") - author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for the information in this section, not necessarily who typed it in.") - focus_field: ReferenceModel = Field(default=None, alias="focus", description="The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative.") - orderedBy_field: CodeableConceptModel = Field(default=None, alias="orderedBy", description="Specifies the order applied to the items in the section entries.") - entry_field: List[ReferenceModel] = Field(default_factory=list, alias="entry", description="A reference to the actual resource from which the narrative in the section is derived.") - emptyReason_field: CodeableConceptModel = Field(default=None, alias="emptyReason", description="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.") - section_field: List[Composition_SectionModel] = Field(default_factory=list, alias="section", description="A nested sub-section within this section.") - -class ConceptMapModel(BaseModel): - resourceType_field: str = "ConceptMap" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this concept map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which ConceptMap is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the concept map.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this concept map. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the concept map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the concept map changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the concept map.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the concept map from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate concept map instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the concept map is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this concept map is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the ConceptMap content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the ConceptMap. Topics provide a high-level categorization as well as keywords for the ConceptMap that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the ConceptMap.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the ConceptMap.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ConceptMap.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the ConceptMap for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - property_field: List[ConceptMap_PropertyModel] = Field(default_factory=list, alias="property", description="A property defines a slot through which additional information can be provided about a map from source -> target.") - additionalAttribute_field: List[ConceptMap_AdditionalAttributeModel] = Field(default_factory=list, alias="additionalAttribute", description="An additionalAttribute defines an additional data element found in the source or target data model where the data will come from or be mapped to. Some mappings are based on data in addition to the source data element, where codes in multiple fields are combined to a single field (or vice versa).") - group_field: List[ConceptMap_GroupModel] = Field(default_factory=list, alias="group", description="A group of mappings that all have the same source and target system.") - -class ConceptMap_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify the property. The code is used internally (in ConceptMap.group.element.target.property.code) and also in the $translate operation.") - uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal meaning of the property.") - description_field: stringModel = Field(default=None, alias="description", description="A description of the property - why it is defined, and how its value might be used.") - type_field: codeModel = Field(default=None, alias="type", description="The type of the property value.") - system_field: canonicalModel = Field(default=None, alias="system", description="The CodeSystem that defines the codes from which values of type ```code``` in property values.") - -class ConceptMap_AdditionalAttributeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify this additional data attribute. The code is used internally in ConceptMap.group.element.target.dependsOn.attribute and ConceptMap.group.element.target.product.attribute.") - uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal definition of the source/target data element. For elements defined by the FHIR specification, or using a FHIR logical model, the correct format is {canonical-url}#{element-id}.") - description_field: stringModel = Field(default=None, alias="description", description="A description of the additional attribute and/or the data element it refers to - why it is defined, and how the value might be used in mappings, and a discussion of issues associated with the use of the data element.") - type_field: codeModel = Field(default=None, alias="type", description="The type of the source data contained in this concept map for this data element.") - -class ConceptMap_GroupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - source_field: canonicalModel = Field(default=None, alias="source", description="An absolute URI that identifies the source system where the concepts to be mapped are defined.") - target_field: canonicalModel = Field(default=None, alias="target", description="An absolute URI that identifies the target system that the concepts will be mapped to.") - element_field: List[ConceptMap_ElementModel] = Field(default_factory=list, alias="element", description="Mappings for an individual concept in the source to one or more concepts in the target.") - unmapped_field: ConceptMap_UnmappedModel = Field(default=None, alias="unmapped", description="What to do when there is no mapping to a target concept from the source concept and ConceptMap.group.element.noMap is not true. This provides the default to be applied when there is no target concept mapping specified or the expansion of ConceptMap.group.element.target.valueSet is empty.") - -class ConceptMap_ElementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Identity (code or path) or the element/item being mapped.") - display_field: stringModel = Field(default=None, alias="display", description="The display for the code. The display is only provided to help editors when editing the concept map.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The set of concepts from the ConceptMap.group.source code system which are all being mapped to the target as part of this mapping rule.") - noMap_field: booleanModel = Field(default=None, alias="noMap", description="If noMap = true this indicates that no mapping to a target concept exists for this source concept.") - target_field: List[ConceptMap_TargetModel] = Field(default_factory=list, alias="target", description="A concept from the target value set that this concept maps to.") - -class ConceptMap_TargetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Identity (code or path) or the element/item that the map refers to.") - display_field: stringModel = Field(default=None, alias="display", description="The display for the code. The display is only provided to help editors when editing the concept map.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The set of concepts from the ConceptMap.group.target code system which are all being mapped to as part of this mapping rule. The effect of using this data element is the same as having multiple ConceptMap.group.element.target elements with one for each concept in the ConceptMap.group.element.target.valueSet value set.") - relationship_field: codeModel = Field(default=None, alias="relationship", description="The relationship between the source and target concepts. The relationship is read from source to target (e.g. source-is-narrower-than-target).") - comment_field: stringModel = Field(default=None, alias="comment", description="A description of status/issues in mapping that conveys additional information not represented in the structured data.") - property_field: List[ConceptMap_Property1Model] = Field(default_factory=list, alias="property", description="A property value for this source -> target mapping.") - dependsOn_field: List[ConceptMap_DependsOnModel] = Field(default_factory=list, alias="dependsOn", description="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified data attribute can be resolved, and it has the specified value.") - product_field: List[ConceptMap_DependsOnModel] = Field(default_factory=list, alias="product", description="Product is the output of a ConceptMap that provides additional values that go in other attributes / data elemnts of the target data.") - -class ConceptMap_Property1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A reference to a mapping property defined in ConceptMap.property.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this property. If the type chosen for this element is 'code', then the property SHALL be defined in a ConceptMap.property element.") - -class ConceptMap_DependsOnModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - attribute_field: codeModel = Field(default=None, alias="attribute", description="A reference to the additional attribute that holds a value the map depends on.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Data element value that the map depends on / produces.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Data element value that the map depends on / produces.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="This mapping applies if the data element value is a code from this value set.") - -class ConceptMap_UnmappedModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: codeModel = Field(default=None, alias="mode", description="Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped source code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL).") - code_field: codeModel = Field(default=None, alias="code", description="The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code.") - display_field: stringModel = Field(default=None, alias="display", description="The display for the code. The display is only provided to help editors when editing the concept map.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="The set of fixed codes to use when the mode = 'fixed' - all unmapped codes are mapped to each of the fixed codes.") - relationship_field: codeModel = Field(default=None, alias="relationship", description="The default relationship value to apply between the source and target concepts when the source code is unmapped and the mode is 'fixed' or 'use-source-code'.") - otherMap_field: canonicalModel = Field(default=None, alias="otherMap", description="The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept.") - -class ConditionModel(BaseModel): - resourceType_field: str = "Condition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this condition by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - clinicalStatus_field: CodeableConceptModel = Field(default=None, alias="clinicalStatus", description="The clinical status of the condition.") - verificationStatus_field: CodeableConceptModel = Field(default=None, alias="verificationStatus", description="The verification status to support the clinical status of the condition. The verification status pertains to the condition, itself, not to any specific condition attribute.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A category assigned to the condition.") - severity_field: CodeableConceptModel = Field(default=None, alias="severity", description="A subjective assessment of the severity of the condition as evaluated by the clinician.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identification of the condition, problem or diagnosis.") - bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="The anatomical location where this condition manifests itself.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Indicates the patient or group who the condition record is associated with.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this Condition was created or to which the creation of this record is tightly associated.") - onsetAge_field: AgeModel = Field(default=None, alias="onsetAge", description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.") - onsetPeriod_field: PeriodModel = Field(default=None, alias="onsetPeriod", description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.") - onsetRange_field: RangeModel = Field(default=None, alias="onsetRange", description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.") - abatementAge_field: AgeModel = Field(default=None, alias="abatementAge", description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.") - abatementPeriod_field: PeriodModel = Field(default=None, alias="abatementPeriod", description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.") - abatementRange_field: RangeModel = Field(default=None, alias="abatementRange", description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.") - recordedDate_field: dateTimeModel = Field(default=None, alias="recordedDate", description="The recordedDate represents when this particular Condition record was created in the system, which is often a system-generated date.") - participant_field: List[Condition_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the activities related to the condition and how they were involved.") - stage_field: List[Condition_StageModel] = Field(default_factory=list, alias="stage", description="A simple summary of the stage such as Stage 3 or Early Onset. The determination of the stage is disease-specific, such as cancer, retinopathy of prematurity, kidney diseases, Alzheimer's, or Parkinson disease.") - evidence_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="evidence", description="Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.") - -class Condition_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the activities related to the condition.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the activities related to the condition.") - -class Condition_StageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - summary_field: CodeableConceptModel = Field(default=None, alias="summary", description="A simple summary of the stage such as Stage 3 or Early Onset. The determination of the stage is disease-specific, such as cancer, retinopathy of prematurity, kidney diseases, Alzheimer's, or Parkinson disease.") - assessment_field: List[ReferenceModel] = Field(default_factory=list, alias="assessment", description="Reference to a formal record of the evidence on which the staging assessment is based.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of staging, such as pathological or clinical staging.") - -class ConditionDefinitionModel(BaseModel): - resourceType_field: str = "ConditionDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this condition definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this condition definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the condition definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this condition definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the condition definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the condition definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the condition definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the condition definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this condition definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this condition definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the condition definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the condition definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the condition definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the condition definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate condition definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the condition definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this {{title}} is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the event definition giving additional information about its content.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identification of the condition, problem or diagnosis.") - severity_field: CodeableConceptModel = Field(default=None, alias="severity", description="A subjective assessment of the severity of the condition as evaluated by the clinician.") - bodySite_field: CodeableConceptModel = Field(default=None, alias="bodySite", description="The anatomical location where this condition manifests itself.") - stage_field: CodeableConceptModel = Field(default=None, alias="stage", description="Clinical stage or grade of a condition. May include formal severity assessments.") - hasSeverity_field: booleanModel = Field(default=None, alias="hasSeverity", description="Whether Severity is appropriate to collect for this condition.") - hasBodySite_field: booleanModel = Field(default=None, alias="hasBodySite", description="Whether bodySite is appropriate to collect for this condition.") - hasStage_field: booleanModel = Field(default=None, alias="hasStage", description="Whether stage is appropriate to collect for this condition.") - definition_field: List[uriModel] = Field(default_factory=list, alias="definition", description="Formal definitions of the condition. These may be references to ontologies, published clinical protocols or research papers.") - observation_field: List[ConditionDefinition_ObservationModel] = Field(default_factory=list, alias="observation", description="Observations particularly relevant to this condition.") - medication_field: List[ConditionDefinition_MedicationModel] = Field(default_factory=list, alias="medication", description="Medications particularly relevant for this condition.") - precondition_field: List[ConditionDefinition_PreconditionModel] = Field(default_factory=list, alias="precondition", description="An observation that suggests that this condition applies.") - team_field: List[ReferenceModel] = Field(default_factory=list, alias="team", description="Appropriate team for this condition.") - questionnaire_field: List[ConditionDefinition_QuestionnaireModel] = Field(default_factory=list, alias="questionnaire", description="Questionnaire for this condition.") - plan_field: List[ConditionDefinition_PlanModel] = Field(default_factory=list, alias="plan", description="Plan that is appropriate.") - -class ConditionDefinition_ObservationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Category that is relevant.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for relevant Observation.") - -class ConditionDefinition_MedicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Category that is relevant.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for relevant Medication.") - -class ConditionDefinition_PreconditionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="Kind of pre-condition.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Code for relevant Observation.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Value of Observation.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Value of Observation.") - -class ConditionDefinition_QuestionnaireModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - purpose_field: codeModel = Field(default=None, alias="purpose", description="Use of the questionnaire.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="Specific Questionnaire.") - -class ConditionDefinition_PlanModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Use for the plan.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="The actual plan.") - -class ConsentModel(BaseModel): - resourceType_field: str = "Consent" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for this copy of the Consent Statement.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates the current state of this Consent resource.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient/healthcare practitioner or group of persons to whom this consent applies.") - date_field: dateModel = Field(default=None, alias="date", description="Date the consent instance was agreed to.") - period_field: PeriodModel = Field(default=None, alias="period", description="Effective period for this Consent Resource and all provisions unless specified in that provision.") - grantor_field: List[ReferenceModel] = Field(default_factory=list, alias="grantor", description="The entity responsible for granting the rights listed in a Consent Directive.") - grantee_field: List[ReferenceModel] = Field(default_factory=list, alias="grantee", description="The entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions.") - manager_field: List[ReferenceModel] = Field(default_factory=list, alias="manager", description="The actor that manages the consent through its lifecycle.") - controller_field: List[ReferenceModel] = Field(default_factory=list, alias="controller", description="The actor that controls/enforces the access according to the consent.") - sourceAttachment_field: List[AttachmentModel] = Field(default_factory=list, alias="sourceAttachment", description="The source on which this consent statement is based. The source might be a scanned original paper form.") - sourceReference_field: List[ReferenceModel] = Field(default_factory=list, alias="sourceReference", description="A reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document.") - regulatoryBasis_field: List[CodeableConceptModel] = Field(default_factory=list, alias="regulatoryBasis", description="A set of codes that indicate the regulatory basis (if any) that this consent supports.") - policyBasis_field: Consent_PolicyBasisModel = Field(default=None, alias="policyBasis", description="A Reference or URL used to uniquely identify the policy the organization will enforce for this Consent. This Reference or URL should be specific to the version of the policy and should be dereferencable to a computable policy of some form.") - policyText_field: List[ReferenceModel] = Field(default_factory=list, alias="policyText", description="A Reference to the human readable policy explaining the basis for the Consent.") - verification_field: List[Consent_VerificationModel] = Field(default_factory=list, alias="verification", description="Whether a treatment instruction (e.g. artificial respiration: yes or no) was verified with the patient, his/her family or another authorized person.") - decision_field: codeModel = Field(default=None, alias="decision", description="Action to take - permit or deny - as default.") - provision_field: List[Consent_ProvisionModel] = Field(default_factory=list, alias="provision", description="An exception to the base policy of this consent. An exception can be an addition or removal of access permissions.") - -class Consent_PolicyBasisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="A Reference that identifies the policy the organization will enforce for this Consent.") - url_field: urlModel = Field(default=None, alias="url", description="A URL that links to a computable version of the policy the organization will enforce for this Consent.") - -class Consent_VerificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - verified_field: booleanModel = Field(default=None, alias="verified", description="Has the instruction been verified.") - verificationType_field: CodeableConceptModel = Field(default=None, alias="verificationType", description="Extensible list of verification type starting with verification and re-validation.") - verifiedBy_field: ReferenceModel = Field(default=None, alias="verifiedBy", description="The person who conducted the verification/validation of the Grantor decision.") - verifiedWith_field: ReferenceModel = Field(default=None, alias="verifiedWith", description="Who verified the instruction (Patient, Relative or other Authorized Person).") - verificationDate_field: List[dateTimeModel] = Field(default_factory=list, alias="verificationDate", description="Date(s) verification was collected.") - -class Consent_ProvisionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - period_field: PeriodModel = Field(default=None, alias="period", description="Timeframe for this provision.") - actor_field: List[Consent_ActorModel] = Field(default_factory=list, alias="actor", description="Who or what is controlled by this provision. Use group to identify a set of actors by some property they share (e.g. 'admitting officers').") - action_field: List[CodeableConceptModel] = Field(default_factory=list, alias="action", description="Actions controlled by this provision.") - securityLabel_field: List[CodingModel] = Field(default_factory=list, alias="securityLabel", description="A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.") - purpose_field: List[CodingModel] = Field(default_factory=list, alias="purpose", description="The context of the activities a user is taking - why the user is accessing the data - that are controlled by this provision.") - documentType_field: List[CodingModel] = Field(default_factory=list, alias="documentType", description="The documentType(s) covered by this provision. The type can be a CDA document, or some other type that indicates what sort of information the consent relates to.") - resourceType_field: List[CodingModel] = Field(default_factory=list, alias="resourceType", description="The resourceType(s) covered by this provision. The type can be a FHIR resource type or a profile on a type that indicates what information the consent relates to.") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="If this code is found in an instance, then the provision applies.") - dataPeriod_field: PeriodModel = Field(default=None, alias="dataPeriod", description="Clinical or Operational Relevant period of time that bounds the data controlled by this provision.") - data_field: List[Consent_DataModel] = Field(default_factory=list, alias="data", description="The resources controlled by this provision if specific resources are referenced.") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="A computable (FHIRPath or other) definition of what is controlled by this consent.") - provision_field: List[Consent_ProvisionModel] = Field(default_factory=list, alias="provision", description="Provisions which provide exceptions to the base provision or subprovisions.") - -class Consent_ActorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="How the individual is involved in the resources content that is described in the exception.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').") - -class Consent_DataModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - meaning_field: codeModel = Field(default=None, alias="meaning", description="How the resource reference is interpreted when testing consent restrictions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a specific resource that defines which resources are covered by this consent.") - -class ContractModel(BaseModel): - resourceType_field: str = "Contract" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for this Contract or a derivative that references a Source Contract.") - url_field: uriModel = Field(default=None, alias="url", description="Canonical identifier for this contract, represented as a URI (globally unique).") - version_field: stringModel = Field(default=None, alias="version", description="An edition identifier used for business purposes to label business significant variants.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - legalState_field: CodeableConceptModel = Field(default=None, alias="legalState", description="Legal states of the formation of a legal instrument, which is a formally executed written document that can be formally attributed to its author, records and formally expresses a legally enforceable act, process, or contractual duty, obligation, or right, and therefore evidences that act, process, or agreement.") - instantiatesCanonical_field: ReferenceModel = Field(default=None, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined Contract Definition that is adhered to in whole or part by this Contract.") - instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an externally maintained definition that is adhered to in whole or in part by this Contract.") - contentDerivative_field: CodeableConceptModel = Field(default=None, alias="contentDerivative", description="The minimal content derived from the basal information source at a specific stage in its lifecycle.") - issued_field: dateTimeModel = Field(default=None, alias="issued", description="When this Contract was issued.") - applies_field: PeriodModel = Field(default=None, alias="applies", description="Relevant time or time-period when this Contract is applicable.") - expirationType_field: CodeableConceptModel = Field(default=None, alias="expirationType", description="Event resulting in discontinuation or termination of this Contract instance by one or more parties to the contract.") - subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The target entity impacted by or of interest to parties to the agreement.") - authority_field: List[ReferenceModel] = Field(default_factory=list, alias="authority", description="A formally or informally recognized grouping of people, principals, organizations, or jurisdictions formed for the purpose of achieving some form of collective action such as the promulgation, administration and enforcement of contracts and policies.") - domain_field: List[ReferenceModel] = Field(default_factory=list, alias="domain", description="Recognized governance framework or system operating with a circumscribed scope in accordance with specified principles, policies, processes or procedures for managing rights, actions, or behaviors of parties or principals relative to resources.") - site_field: List[ReferenceModel] = Field(default_factory=list, alias="site", description="Sites in which the contract is complied with, exercised, or in force.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying this Contract definition, derivative, or instance in any legal state. Provides additional information about its content. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for this Contract definition, derivative, or instance in any legal state.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="A more detailed or qualifying explanatory or alternate user-friendly title for this Contract definition, derivative, or instance in any legal state.") - alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="Alternative representation of the title for this Contract definition, derivative, or instance in any legal state., e.g., a domain specific contract number related to legislation.") - author_field: ReferenceModel = Field(default=None, alias="author", description="The individual or organization that authored the Contract definition, derivative, or instance in any legal state.") - scope_field: CodeableConceptModel = Field(default=None, alias="scope", description="A selector of legal concerns for this Contract definition, derivative, or instance in any legal state.") - topicCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="topicCodeableConcept", description="Narrows the range of legal concerns to focus on the achievement of specific contractual objectives.") - topicReference_field: ReferenceModel = Field(default=None, alias="topicReference", description="Narrows the range of legal concerns to focus on the achievement of specific contractual objectives.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A high-level category for the legal instrument, whether constructed as a Contract definition, derivative, or instance in any legal state. Provides additional information about its content within the context of the Contract's scope to distinguish the kinds of systems that would be interested in the contract.") - subType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subType", description="Sub-category for the Contract that distinguishes the kinds of systems that would be interested in the Contract within the context of the Contract's scope.") - contentDefinition_field: Contract_ContentDefinitionModel = Field(default=None, alias="contentDefinition", description="Precusory content developed with a focus and intent of supporting the formation a Contract instance, which may be associated with and transformable into a Contract.") - term_field: List[Contract_TermModel] = Field(default_factory=list, alias="term", description="One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups.") - supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Information that may be needed by/relevant to the performer in their execution of this term action.") - relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Links to Provenance records for past versions of this Contract definition, derivative, or instance, which identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the Contract. The Provenance.entity indicates the target that was changed in the update (see [Provenance.entity](provenance-definitions.html#Provenance.entity)).") - signer_field: List[Contract_SignerModel] = Field(default_factory=list, alias="signer", description="Parties with legal standing in the Contract, including the principal parties, the grantor(s) and grantee(s), which are any person or organization bound by the contract, and any ancillary parties, which facilitate the execution of the contract such as a notary or witness.") - friendly_field: List[Contract_FriendlyModel] = Field(default_factory=list, alias="friendly", description="The patient friendly language versionof the Contract in whole or in parts. Patient friendly language means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement.") - legal_field: List[Contract_LegalModel] = Field(default_factory=list, alias="legal", description="List of Legal expressions or representations of this Contract.") - rule_field: List[Contract_RuleModel] = Field(default_factory=list, alias="rule", description="List of Computable Policy Rule Language Representations of this Contract.") - legallyBindingAttachment_field: AttachmentModel = Field(default=None, alias="legallyBindingAttachment", description="Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the source of truth and which would be the basis for legal action related to enforcement of this Contract.") - legallyBindingReference_field: ReferenceModel = Field(default=None, alias="legallyBindingReference", description="Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the source of truth and which would be the basis for legal action related to enforcement of this Contract.") - -class Contract_ContentDefinitionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation.") - subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="Detailed Precusory content type.") - publisher_field: ReferenceModel = Field(default=None, alias="publisher", description="The individual or organization that published the Contract precursor content.") - publicationDate_field: dateTimeModel = Field(default=None, alias="publicationDate", description="The date (and optionally time) when the contract was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the contract changes.") - publicationStatus_field: codeModel = Field(default=None, alias="publicationStatus", description="amended | appended | cancelled | disputed | entered-in-error | executable +.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content.") - -class Contract_TermModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Unique identifier for this particular Contract Provision.") - issued_field: dateTimeModel = Field(default=None, alias="issued", description="When this Contract Provision was issued.") - applies_field: PeriodModel = Field(default=None, alias="applies", description="Relevant time or time-period when this Contract Provision is applicable.") - topicCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="topicCodeableConcept", description="The entity that the term applies to.") - topicReference_field: ReferenceModel = Field(default=None, alias="topicReference", description="The entity that the term applies to.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time.") - subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A specialized legal clause or condition based on overarching contract type.") - text_field: stringModel = Field(default=None, alias="text", description="Statement of a provision in a policy or a contract.") - securityLabel_field: List[Contract_SecurityLabelModel] = Field(default_factory=list, alias="securityLabel", description="Security labels that protect the handling of information about the term and its elements, which may be specifically identified.") - offer_field: Contract_OfferModel = Field(default=None, alias="offer", description="The matter of concern in the context of this provision of the agrement.") - asset_field: List[Contract_AssetModel] = Field(default_factory=list, alias="asset", description="Contract Term Asset List.") - action_field: List[Contract_ActionModel] = Field(default_factory=list, alias="action", description="An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.") - group_field: List[Contract_TermModel] = Field(default_factory=list, alias="group", description="Nested group of Contract Provisions.") - -class Contract_SecurityLabelModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - number_field: List[unsignedIntModel] = Field(default_factory=list, alias="number", description="Number used to link this term or term element to the applicable Security Label.") - classification_field: CodingModel = Field(default=None, alias="classification", description="Security label privacy tag that specifies the level of confidentiality protection required for this term and/or term elements.") - category_field: List[CodingModel] = Field(default_factory=list, alias="category", description="Security label privacy tag that specifies the applicable privacy and security policies governing this term and/or term elements.") - control_field: List[CodingModel] = Field(default_factory=list, alias="control", description="Security label privacy tag that specifies the manner in which term and/or term elements are to be protected.") - -class Contract_OfferModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for this particular Contract Provision.") - party_field: List[Contract_PartyModel] = Field(default_factory=list, alias="party", description="Offer Recipient.") - topic_field: ReferenceModel = Field(default=None, alias="topic", description="The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30).") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit.") - decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="Type of choice made by accepting party with respect to an offer made by an offeror/ grantee.") - decisionMode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="decisionMode", description="How the decision about a Contract was conveyed.") - answer_field: List[Contract_AnswerModel] = Field(default_factory=list, alias="answer", description="Response to offer text.") - text_field: stringModel = Field(default=None, alias="text", description="Human readable form of this Contract Offer.") - linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="The id of the clause or question text of the offer in the referenced questionnaire/response.") - securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="Security labels that protects the offer.") - -class Contract_PartyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: List[ReferenceModel] = Field(default_factory=list, alias="reference", description="Participant in the offer.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="How the party participates in the offer.") - -class Contract_AnswerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warranty duration, or whether biospecimen may be used for further research.") - -class Contract_AssetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - scope_field: CodeableConceptModel = Field(default=None, alias="scope", description="Differentiates the kind of the asset .") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Target entity type about which the term may be concerned.") - typeReference_field: List[ReferenceModel] = Field(default_factory=list, alias="typeReference", description="Associated entities.") - subtype_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subtype", description="May be a subtype or part of an offered asset.") - relationship_field: CodingModel = Field(default=None, alias="relationship", description="Specifies the applicability of the term to an asset resource instance, and instances it refers to or instances that refer to it, and/or are owned by the offeree.") - context_field: List[Contract_ContextModel] = Field(default_factory=list, alias="context", description="Circumstance of the asset.") - condition_field: stringModel = Field(default=None, alias="condition", description="Description of the quality and completeness of the asset that may be a factor in its valuation.") - periodType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="periodType", description="Type of Asset availability for use or ownership.") - period_field: List[PeriodModel] = Field(default_factory=list, alias="period", description="Asset relevant contractual time period.") - usePeriod_field: List[PeriodModel] = Field(default_factory=list, alias="usePeriod", description="Time period of asset use.") - text_field: stringModel = Field(default=None, alias="text", description="Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract.") - linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse.") - answer_field: List[Contract_AnswerModel] = Field(default_factory=list, alias="answer", description="Response to assets.") - securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="Security labels that protects the asset.") - valuedItem_field: List[Contract_ValuedItemModel] = Field(default_factory=list, alias="valuedItem", description="Contract Valued Item List.") - -class Contract_ContextModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository), location held, e.g., building, jurisdiction.") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location.") - text_field: stringModel = Field(default=None, alias="text", description="Context description.") - -class Contract_ValuedItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - entityCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="entityCodeableConcept", description="Specific type of Contract Valued Item that may be priced.") - entityReference_field: ReferenceModel = Field(default=None, alias="entityReference", description="Specific type of Contract Valued Item that may be priced.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifies a Contract Valued Item instance.") - effectiveTime_field: dateTimeModel = Field(default=None, alias="effectiveTime", description="Indicates the time during which this Contract ValuedItem information is effective.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="A Contract Valued Item unit valuation measure.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - points_field: decimalModel = Field(default=None, alias="points", description="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point.") - net_field: MoneyModel = Field(default=None, alias="net", description="Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.") - payment_field: stringModel = Field(default=None, alias="payment", description="Terms of valuation.") - paymentDate_field: dateTimeModel = Field(default=None, alias="paymentDate", description="When payment is due.") - responsible_field: ReferenceModel = Field(default=None, alias="responsible", description="Who will make payment.") - recipient_field: ReferenceModel = Field(default=None, alias="recipient", description="Who will receive payment.") - linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="Id of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse.") - securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="A set of security labels that define which terms are controlled by this condition.") - -class Contract_ActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="True if the term prohibits the action.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term.") - subject_field: List[Contract_SubjectModel] = Field(default_factory=list, alias="subject", description="Entity of the action.") - intent_field: CodeableConceptModel = Field(default=None, alias="intent", description="Reason or purpose for the action stipulated by this Contract Provision.") - linkId_field: List[stringModel] = Field(default_factory=list, alias="linkId", description="Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="Current state of the term action.") - context_field: ReferenceModel = Field(default=None, alias="context", description="Encounter or Episode with primary association to the specified term activity.") - contextLinkId_field: List[stringModel] = Field(default_factory=list, alias="contextLinkId", description="Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="When action happens.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="When action happens.") - requester_field: List[ReferenceModel] = Field(default_factory=list, alias="requester", description="Who or what initiated the action and has responsibility for its activation.") - requesterLinkId_field: List[stringModel] = Field(default_factory=list, alias="requesterLinkId", description="Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse.") - performerType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="performerType", description="The type of individual that is desired or required to perform or not perform the action.") - performerRole_field: CodeableConceptModel = Field(default=None, alias="performerRole", description="The type of role or competency of an individual desired or required to perform or not perform the action.") - performer_field: ReferenceModel = Field(default=None, alias="performer", description="Indicates who or what is being asked to perform (or not perform) the ction.") - performerLinkId_field: List[stringModel] = Field(default_factory=list, alias="performerLinkId", description="Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited. Either a coded concept, or another resource whose existence justifies permitting or not permitting this action.") - reasonLinkId_field: List[stringModel] = Field(default_factory=list, alias="reasonLinkId", description="Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the term action made by the requester, performer, subject or other participants.") - securityLabelNumber_field: List[unsignedIntModel] = Field(default_factory=list, alias="securityLabelNumber", description="Security labels that protects the action.") - -class Contract_SubjectModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: List[ReferenceModel] = Field(default_factory=list, alias="reference", description="The entity the action is performed or not performed on or for.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Role type of agent assigned roles in this Contract.") - -class Contract_SignerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodingModel = Field(default=None, alias="type", description="Role of this Contract signer, e.g. notary, grantee.") - party_field: ReferenceModel = Field(default=None, alias="party", description="Party which is a signator to this Contract.") - signature_field: List[SignatureModel] = Field(default_factory=list, alias="signature", description="Legally binding Contract DSIG signature contents in Base64.") - -class Contract_FriendlyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability.") - contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability.") - -class Contract_LegalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="Contract legal text in human renderable form.") - contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="Contract legal text in human renderable form.") - -class Contract_RuleModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - contentAttachment_field: AttachmentModel = Field(default=None, alias="contentAttachment", description="Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal).") - contentReference_field: ReferenceModel = Field(default=None, alias="contentReference", description="Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal).") - -class CoverageModel(BaseModel): - resourceType_field: str = "Coverage" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The identifier of the coverage as issued by the insurer.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - kind_field: codeModel = Field(default=None, alias="kind", description="The nature of the coverage be it insurance, or cash payment such as self-pay.") - paymentBy_field: List[Coverage_PaymentByModel] = Field(default_factory=list, alias="paymentBy", description="Link to the paying party and optionally what specifically they will be responsible to pay.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health or payment by an individual or organization.") - policyHolder_field: ReferenceModel = Field(default=None, alias="policyHolder", description="The party who 'owns' the insurance policy.") - subscriber_field: ReferenceModel = Field(default=None, alias="subscriber", description="The party who has signed-up for or 'owns' the contractual relationship to the policy or to whom the benefit of the policy for services rendered to them or their family is due.") - subscriberId_field: List[IdentifierModel] = Field(default_factory=list, alias="subscriberId", description="The insurer assigned ID for the Subscriber.") - beneficiary_field: ReferenceModel = Field(default=None, alias="beneficiary", description="The party who benefits from the insurance coverage; the patient when products and/or services are provided.") - dependent_field: stringModel = Field(default=None, alias="dependent", description="A designator for a dependent under the coverage.") - relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="The relationship of beneficiary (patient) to the subscriber.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The program or plan underwriter, payor, insurance company.") - class_field: List[Coverage_ClassModel] = Field(default_factory=list, alias="class", description="A suite of underwriter specific classifiers.") - order_field: positiveIntModel = Field(default=None, alias="order", description="The order of applicability of this coverage relative to other coverages which are currently in force. Note, there may be gaps in the numbering and this does not imply primary, secondary etc. as the specific positioning of coverages depends upon the episode of care. For example; a patient might have (0) auto insurance (1) their own health insurance and (2) spouse's health insurance. When claiming for treatments which were not the result of an auto accident then only coverages (1) and (2) above would be applicatble and would apply in the order specified in parenthesis.") - network_field: stringModel = Field(default=None, alias="network", description="The insurer-specific identifier for the insurer-defined network of providers to which the beneficiary may seek treatment which will be covered at the 'in-network' rate, otherwise 'out of network' terms and conditions apply.") - costToBeneficiary_field: List[Coverage_CostToBeneficiaryModel] = Field(default_factory=list, alias="costToBeneficiary", description="A suite of codes indicating the cost category and associated amount which have been detailed in the policy and may have been included on the health card.") - subrogation_field: booleanModel = Field(default=None, alias="subrogation", description="When 'subrogation=true' this insurance instance has been included not for adjudication but to provide insurers with the details to recover costs.") - contract_field: List[ReferenceModel] = Field(default_factory=list, alias="contract", description="The policy(s) which constitute this insurance coverage.") - insurancePlan_field: ReferenceModel = Field(default=None, alias="insurancePlan", description="The insurance plan details, benefits and costs, which constitute this insurance coverage.") - -class Coverage_PaymentByModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - party_field: ReferenceModel = Field(default=None, alias="party", description="The list of parties providing non-insurance payment for the treatment costs.") - responsibility_field: stringModel = Field(default=None, alias="responsibility", description=" Description of the financial responsibility.") - -class Coverage_ClassModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of classification for which an insurer-specific class label or number and optional name is provided. For example, type may be used to identify a class of coverage or employer group, policy, or plan.") - value_field: IdentifierModel = Field(default=None, alias="value", description="The alphanumeric identifier associated with the insurer issued label.") - name_field: stringModel = Field(default=None, alias="name", description="A short description for the class.") - -class Coverage_CostToBeneficiaryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of patient centric costs associated with treatment.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - network_field: CodeableConceptModel = Field(default=None, alias="network", description="Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers.") - unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Indicates if the benefits apply to an individual or to the family.") - term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The amount due from the patient for the cost category.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The amount due from the patient for the cost category.") - exception_field: List[Coverage_ExceptionModel] = Field(default_factory=list, alias="exception", description="A suite of codes indicating exceptions or reductions to patient costs and their effective periods.") - -class Coverage_ExceptionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The code for the specific exception.") - period_field: PeriodModel = Field(default=None, alias="period", description="The timeframe the exception is in force.") - -class CoverageEligibilityRequestModel(BaseModel): - resourceType_field: str = "CoverageEligibilityRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this coverage eligiblity request.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="When the requestor expects the processor to complete processing.") - purpose_field: List[codeModel] = Field(default_factory=list, alias="purpose", description="Code to specify whether requesting: prior authorization requirements for some service categories or billing codes; benefits for coverages specified or discovered; discovery and return of coverages for the patient; and/or validation that the specified coverage is in-force at the date/period specified or 'now' if not specified.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party who is the beneficiary of the supplied coverage and for whom eligibility is sought.") - event_field: List[CoverageEligibilityRequest_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the enclosed suite of services were performed or completed.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date when this resource was created.") - enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Person who created the request.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="The provider which is responsible for the request.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who issued the coverage in question and is the recipient of the request.") - facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services are intended to be provided.") - supportingInfo_field: List[CoverageEligibilityRequest_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues.") - insurance_field: List[CoverageEligibilityRequest_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services.") - item_field: List[CoverageEligibilityRequest_ItemModel] = Field(default_factory=list, alias="item", description="Service categories or billable services for which benefit details and/or an authorization prior to service delivery may be required by the payor.") - -class CoverageEligibilityRequest_EventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") - whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") - -class CoverageEligibilityRequest_SupportingInfoModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify supporting information entries.") - information_field: ReferenceModel = Field(default=None, alias="information", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - appliesToAll_field: booleanModel = Field(default=None, alias="appliesToAll", description="The supporting materials are applicable for all detail items, product/servce categories and specific billing codes.") - -class CoverageEligibilityRequest_InsuranceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for evaluation of this request when set to true.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") - businessArrangement_field: stringModel = Field(default=None, alias="businessArrangement", description="A business agreement number established between the provider and the insurer for special business processing purposes.") - -class CoverageEligibilityRequest_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - supportingInfoSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="supportingInfoSequence", description="Exceptions, special conditions and supporting information applicable for this service or product line.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="This contains the product, service, drug or other billing code for the item.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="The practitioner who is responsible for the product or service to be rendered to the patient.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="The amount charged to the patient by the provider for a single unit.") - facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services will be provided.") - diagnosis_field: List[CoverageEligibilityRequest_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="Patient diagnosis for which care is sought.") - detail_field: List[ReferenceModel] = Field(default_factory=list, alias="detail", description="The plan/proposal/order describing the proposed service in detail.") - -class CoverageEligibilityRequest_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - diagnosisCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="diagnosisCodeableConcept", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") - diagnosisReference_field: ReferenceModel = Field(default=None, alias="diagnosisReference", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") - -class CoverageEligibilityResponseModel(BaseModel): - resourceType_field: str = "CoverageEligibilityResponse" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this coverage eligiblity request.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - purpose_field: List[codeModel] = Field(default_factory=list, alias="purpose", description="Code to specify whether requesting: prior authorization requirements for some service categories or billing codes; benefits for coverages specified or discovered; discovery and return of coverages for the patient; and/or validation that the specified coverage is in-force at the date/period specified or 'now' if not specified.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party who is the beneficiary of the supplied coverage and for whom eligibility is sought.") - event_field: List[CoverageEligibilityResponse_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the enclosed suite of services were performed or completed.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") - requestor_field: ReferenceModel = Field(default=None, alias="requestor", description="The provider which is responsible for the request.") - request_field: ReferenceModel = Field(default=None, alias="request", description="Reference to the original request resource.") - outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of the request processing.") - disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the adjudication.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who issued the coverage in question and is the author of the response.") - insurance_field: List[CoverageEligibilityResponse_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services.") - preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="A reference from the Insurer to which these services pertain to be used on further communication and as proof that the request occurred.") - form_field: CodeableConceptModel = Field(default=None, alias="form", description="A code for the form to be used for printing the content.") - error_field: List[CoverageEligibilityResponse_ErrorModel] = Field(default_factory=list, alias="error", description="Errors encountered during the processing of the request.") - -class CoverageEligibilityResponse_EventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") - whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") - -class CoverageEligibilityResponse_InsuranceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") - inforce_field: booleanModel = Field(default=None, alias="inforce", description="Flag indicating if the coverage provided is inforce currently if no service date(s) specified or for the whole duration of the service dates.") - benefitPeriod_field: PeriodModel = Field(default=None, alias="benefitPeriod", description="The term of the benefits documented in this response.") - item_field: List[CoverageEligibilityResponse_ItemModel] = Field(default_factory=list, alias="item", description="Benefits and optionally current balances, and authorization details by category or service.") - -class CoverageEligibilityResponse_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="This contains the product, service, drug or other billing code for the item.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="The practitioner who is eligible for the provision of the product or service.") - excluded_field: booleanModel = Field(default=None, alias="excluded", description="True if the indicated class of service is excluded from the plan, missing or False indicates the product or service is included in the coverage.") - name_field: stringModel = Field(default=None, alias="name", description="A short name or tag for the benefit.") - description_field: stringModel = Field(default=None, alias="description", description="A richer description of the benefit or services covered.") - network_field: CodeableConceptModel = Field(default=None, alias="network", description="Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers.") - unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Indicates if the benefits apply to an individual or to the family.") - term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'.") - benefit_field: List[CoverageEligibilityResponse_BenefitModel] = Field(default_factory=list, alias="benefit", description="Benefits used to date.") - authorizationRequired_field: booleanModel = Field(default=None, alias="authorizationRequired", description="A boolean flag indicating whether a preauthorization is required prior to actual service delivery.") - authorizationSupporting_field: List[CodeableConceptModel] = Field(default_factory=list, alias="authorizationSupporting", description="Codes or comments regarding information or actions associated with the preauthorization.") - authorizationUrl_field: uriModel = Field(default=None, alias="authorizationUrl", description="A web location for obtaining requirements or descriptive information regarding the preauthorization.") - -class CoverageEligibilityResponse_BenefitModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Classification of benefit being provided.") - allowedMoney_field: MoneyModel = Field(default=None, alias="allowedMoney", description="The quantity of the benefit which is permitted under the coverage.") - usedMoney_field: MoneyModel = Field(default=None, alias="usedMoney", description="The quantity of the benefit which have been consumed to date.") - -class CoverageEligibilityResponse_ErrorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="An error code,from a specified code system, which details why the eligibility check could not be performed.") - expression_field: List[stringModel] = Field(default_factory=list, alias="expression", description="A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.") - -class DetectedIssueModel(BaseModel): - resourceType_field: str = "DetectedIssue" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier associated with the detected issue record.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates the status of the detected issue.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of detected issue.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Identifies the specific type of issue identified.") - severity_field: codeModel = Field(default=None, alias="severity", description="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Indicates the subject whose record the detected issue is associated with.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter during which this issue was detected.") - identifiedPeriod_field: PeriodModel = Field(default=None, alias="identifiedPeriod", description="The date or period when the detected issue was initially identified.") - author_field: ReferenceModel = Field(default=None, alias="author", description="Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review.") - implicated_field: List[ReferenceModel] = Field(default_factory=list, alias="implicated", description="Indicates the resource representing the current activity or proposed activity that is potentially problematic.") - evidence_field: List[DetectedIssue_EvidenceModel] = Field(default_factory=list, alias="evidence", description="Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.") - detail_field: markdownModel = Field(default=None, alias="detail", description="A textual explanation of the detected issue.") - reference_field: uriModel = Field(default=None, alias="reference", description="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.") - mitigation_field: List[DetectedIssue_MitigationModel] = Field(default_factory=list, alias="mitigation", description="Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.") - -class DetectedIssue_EvidenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="A manifestation that led to the recording of this detected issue.") - detail_field: List[ReferenceModel] = Field(default_factory=list, alias="detail", description="Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.") - -class DetectedIssue_MitigationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - action_field: CodeableConceptModel = Field(default=None, alias="action", description="Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Indicates when the mitigating action was documented.") - author_field: ReferenceModel = Field(default=None, alias="author", description="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided.") - -class DeviceModel(BaseModel): - resourceType_field: str = "Device" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a device by manufacturers other organizations or owners.") - displayName_field: stringModel = Field(default=None, alias="displayName", description="The name used to display by default when the device is referenced. Based on intent of use by the resource creator, this may reflect one of the names in Device.name, or may be another simple name.") - definition_field: CodeableReferenceModel = Field(default=None, alias="definition", description="The reference to the definition for the device.") - udiCarrier_field: List[Device_UdiCarrierModel] = Field(default_factory=list, alias="udiCarrier", description="Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.") - status_field: codeModel = Field(default=None, alias="status", description="The Device record status. This is not the status of the device like availability.") - availabilityStatus_field: CodeableConceptModel = Field(default=None, alias="availabilityStatus", description="The availability of the device.") - biologicalSourceEvent_field: IdentifierModel = Field(default=None, alias="biologicalSourceEvent", description="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.") - manufacturer_field: stringModel = Field(default=None, alias="manufacturer", description="A name of the manufacturer or entity legally responsible for the device.") - manufactureDate_field: dateTimeModel = Field(default=None, alias="manufactureDate", description="The date and time when the device was manufactured.") - expirationDate_field: dateTimeModel = Field(default=None, alias="expirationDate", description="The date and time beyond which this device is no longer valid or should not be used (if applicable).") - lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="Lot number assigned by the manufacturer.") - serialNumber_field: stringModel = Field(default=None, alias="serialNumber", description="The serial number assigned by the organization when the device was manufactured.") - name_field: List[Device_NameModel] = Field(default_factory=list, alias="name", description="This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition.") - modelNumber_field: stringModel = Field(default=None, alias="modelNumber", description="The manufacturer's model number for the device.") - partNumber_field: stringModel = Field(default=None, alias="partNumber", description="The part number or catalog number of the device.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Devices may be associated with one or more categories.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the device.") - version_field: List[Device_VersionModel] = Field(default_factory=list, alias="version", description="The actual design of the device or software version running on the device.") - conformsTo_field: List[Device_ConformsToModel] = Field(default_factory=list, alias="conformsTo", description="Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.") - property_field: List[Device_PropertyModel] = Field(default_factory=list, alias="property", description="Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributes.") - mode_field: CodeableConceptModel = Field(default=None, alias="mode", description="The designated condition for performing a task with the device.") - cycle_field: CountModel = Field(default=None, alias="cycle", description="The series of occurrences that repeats during the operation of the device.") - duration_field: DurationModel = Field(default=None, alias="duration", description="A measurement of time during the device's operation (e.g., days, hours, mins, etc.).") - owner_field: ReferenceModel = Field(default=None, alias="owner", description="An organization that is responsible for the provision and ongoing maintenance of the device.") - contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for an organization or a particular human that is responsible for the device.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The place where the device can be found.") - url_field: uriModel = Field(default=None, alias="url", description="A network address on which the device may be contacted directly.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services provided by the device defined at this resource.") - gateway_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="gateway", description="The linked device acting as a communication controller, data collector, translator, or concentrator for the current device (e.g., mobile phone application that relays a blood pressure device's data).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Descriptive information, usage information or implantation information that is not captured in an existing element.") - safety_field: List[CodeableConceptModel] = Field(default_factory=list, alias="safety", description="Provides additional safety characteristics about a medical device. For example devices containing latex.") - parent_field: ReferenceModel = Field(default=None, alias="parent", description="The higher level or encompassing device that this device is a logical part of.") - -class Device_UdiCarrierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - deviceIdentifier_field: stringModel = Field(default=None, alias="deviceIdentifier", description="The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device.") - issuer_field: uriModel = Field(default=None, alias="issuer", description="Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: ") - jurisdiction_field: uriModel = Field(default=None, alias="jurisdiction", description="The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udi.") - carrierAIDC_field: stringModel = Field(default=None, alias="carrierAIDC", description="The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded.") - carrierHRF_field: stringModel = Field(default=None, alias="carrierHRF", description="The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device.") - entryType_field: codeModel = Field(default=None, alias="entryType", description="A coded entry to indicate how the data was entered.") - -class Device_NameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - value_field: stringModel = Field(default=None, alias="value", description="The actual name that identifies the device.") - type_field: codeModel = Field(default=None, alias="type", description="Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedName.") - display_field: booleanModel = Field(default=None, alias="display", description="Indicates the default or preferred name to be displayed.") - -class Device_VersionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the device version, e.g. manufacturer, approved, internal.") - component_field: IdentifierModel = Field(default=None, alias="component", description="The hardware or software module of the device to which the version applies.") - installDate_field: dateTimeModel = Field(default=None, alias="installDate", description="The date the version was installed on the device.") - value_field: stringModel = Field(default=None, alias="value", description="The version text.") - -class Device_ConformsToModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Describes the type of the standard, specification, or formal guidance.") - specification_field: CodeableConceptModel = Field(default=None, alias="specification", description="Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.") - version_field: stringModel = Field(default=None, alias="version", description="Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.") - -class Device_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code that specifies the property, such as resolution, color, size, being represented.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the property specified by the associated property.type code.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the property specified by the associated property.type code.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the property specified by the associated property.type code.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the property specified by the associated property.type code.") - -class DeviceAssociationModel(BaseModel): - resourceType_field: str = "DeviceAssociation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Instance identifier.") - device_field: ReferenceModel = Field(default=None, alias="device", description="Reference to the devices associated with the patient or group.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Describes the relationship between the device and subject.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="Indicates the state of the Device association.") - statusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="statusReason", description="The reasons given for the current association status.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual, group of individuals or device that the device is on or associated with.") - bodyStructure_field: ReferenceModel = Field(default=None, alias="bodyStructure", description="Current anatomical location of the device in/on subject.") - period_field: PeriodModel = Field(default=None, alias="period", description="Begin and end dates and times for the device association.") - operation_field: List[DeviceAssociation_OperationModel] = Field(default_factory=list, alias="operation", description="The details about the device when it is in use to describe its operation.") - -class DeviceAssociation_OperationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="Device operational condition corresponding to the association.") - operator_field: List[ReferenceModel] = Field(default_factory=list, alias="operator", description="The individual performing the action enabled by the device.") - period_field: PeriodModel = Field(default=None, alias="period", description="Begin and end dates and times for the device's operation.") - -class DeviceDefinitionModel(BaseModel): - resourceType_field: str = "DeviceDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Additional information to describe the device.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID. The identifier is typically valued if the udiDeviceIdentifier, partNumber or modelNumber is not valued and represents a different type of identifier. However, it is permissible to still include those identifiers in DeviceDefinition.identifier with the appropriate identifier.type.") - udiDeviceIdentifier_field: List[DeviceDefinition_UdiDeviceIdentifierModel] = Field(default_factory=list, alias="udiDeviceIdentifier", description="Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold.") - regulatoryIdentifier_field: List[DeviceDefinition_RegulatoryIdentifierModel] = Field(default_factory=list, alias="regulatoryIdentifier", description="Identifier associated with the regulatory documentation (certificates, technical documentation, post-market surveillance documentation and reports) of a set of device models sharing the same intended purpose, risk class and essential design and manufacturing characteristics. One example is the Basic UDI-DI in Europe.") - partNumber_field: stringModel = Field(default=None, alias="partNumber", description="The part number or catalog number of the device.") - manufacturer_field: ReferenceModel = Field(default=None, alias="manufacturer", description="A name of the manufacturer or legal representative e.g. labeler. Whether this is the actual manufacturer or the labeler or responsible depends on implementation and jurisdiction.") - deviceName_field: List[DeviceDefinition_DeviceNameModel] = Field(default_factory=list, alias="deviceName", description="The name or names of the device as given by the manufacturer.") - modelNumber_field: stringModel = Field(default=None, alias="modelNumber", description="The model number for the device for example as defined by the manufacturer or labeler, or other agency.") - classification_field: List[DeviceDefinition_ClassificationModel] = Field(default_factory=list, alias="classification", description="What kind of device or device system this is.") - conformsTo_field: List[DeviceDefinition_ConformsToModel] = Field(default_factory=list, alias="conformsTo", description="Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standards.") - hasPart_field: List[DeviceDefinition_HasPartModel] = Field(default_factory=list, alias="hasPart", description="A device that is part (for example a component) of the present device.") - packaging_field: List[DeviceDefinition_PackagingModel] = Field(default_factory=list, alias="packaging", description="Information about the packaging of the device, i.e. how the device is packaged.") - version_field: List[DeviceDefinition_VersionModel] = Field(default_factory=list, alias="version", description="The version of the device or software.") - safety_field: List[CodeableConceptModel] = Field(default_factory=list, alias="safety", description="Safety characteristics of the device.") - shelfLifeStorage_field: List[ProductShelfLifeModel] = Field(default_factory=list, alias="shelfLifeStorage", description="Shelf Life and storage information.") - languageCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="languageCode", description="Language code for the human-readable text strings produced by the device (all supported).") - property_field: List[DeviceDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="Static or essentially fixed characteristics or features of this kind of device that are otherwise not captured in more specific attributes, e.g., time or timing attributes, resolution, accuracy, and physical attributes.") - owner_field: ReferenceModel = Field(default=None, alias="owner", description="An organization that is responsible for the provision and ongoing maintenance of the device.") - contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for an organization or a particular human that is responsible for the device.") - link_field: List[DeviceDefinition_LinkModel] = Field(default_factory=list, alias="link", description="An associated device, attached to, used with, communicating with or linking a previous or new device model to the focal device.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Descriptive information, usage information or implantation information that is not captured in an existing element.") - material_field: List[DeviceDefinition_MaterialModel] = Field(default_factory=list, alias="material", description="A substance used to create the material(s) of which the device is made.") - productionIdentifierInUDI_field: List[codeModel] = Field(default_factory=list, alias="productionIdentifierInUDI", description="Indicates the production identifier(s) that are expected to appear in the UDI carrier on the device label.") - guideline_field: DeviceDefinition_GuidelineModel = Field(default=None, alias="guideline", description="Information aimed at providing directions for the usage of this model of device.") - correctiveAction_field: DeviceDefinition_CorrectiveActionModel = Field(default=None, alias="correctiveAction", description="Tracking of latest field safety corrective action.") - chargeItem_field: List[DeviceDefinition_ChargeItemModel] = Field(default_factory=list, alias="chargeItem", description="Billing code or reference associated with the device.") - -class DeviceDefinition_UdiDeviceIdentifierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - deviceIdentifier_field: stringModel = Field(default=None, alias="deviceIdentifier", description="The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdiction provided in the DeviceDefinition.udiDeviceIdentifier.") - issuer_field: uriModel = Field(default=None, alias="issuer", description="The organization that assigns the identifier algorithm.") - jurisdiction_field: uriModel = Field(default=None, alias="jurisdiction", description="The jurisdiction to which the deviceIdentifier applies.") - marketDistribution_field: List[DeviceDefinition_MarketDistributionModel] = Field(default_factory=list, alias="marketDistribution", description="Indicates where and when the device is available on the market.") - -class DeviceDefinition_MarketDistributionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - marketPeriod_field: PeriodModel = Field(default=None, alias="marketPeriod", description="Begin and end dates for the commercial distribution of the device.") - subJurisdiction_field: uriModel = Field(default=None, alias="subJurisdiction", description="National state or territory to which the marketDistribution recers, typically where the device is commercialized.") - -class DeviceDefinition_RegulatoryIdentifierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of identifier itself.") - deviceIdentifier_field: stringModel = Field(default=None, alias="deviceIdentifier", description="The identifier itself.") - issuer_field: uriModel = Field(default=None, alias="issuer", description="The organization that issued this identifier.") - jurisdiction_field: uriModel = Field(default=None, alias="jurisdiction", description="The jurisdiction to which the deviceIdentifier applies.") - -class DeviceDefinition_DeviceNameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="A human-friendly name that is used to refer to the device - depending on the type, it can be the brand name, the common name or alias, or other.") - type_field: codeModel = Field(default=None, alias="type", description="The type of deviceName.") - -class DeviceDefinition_ClassificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A classification or risk class of the device model.") - justification_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="justification", description="Further information qualifying this classification of the device model.") - -class DeviceDefinition_ConformsToModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Describes the type of the standard, specification, or formal guidance.") - specification_field: CodeableConceptModel = Field(default=None, alias="specification", description="Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheres.") - version_field: List[stringModel] = Field(default_factory=list, alias="version", description="Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other label.") - source_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="source", description="Standard, regulation, certification, or guidance website, document, or other publication, or similar, supporting the conformance.") - -class DeviceDefinition_HasPartModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="Reference to the device that is part of the current device.") - count_field: integerModel = Field(default=None, alias="count", description="Number of instances of the component device in the current device.") - -class DeviceDefinition_PackagingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The business identifier of the packaged medication.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code that defines the specific type of packaging.") - count_field: integerModel = Field(default=None, alias="count", description="The number of items contained in the package (devices or sub-packages).") - distributor_field: List[DeviceDefinition_DistributorModel] = Field(default_factory=list, alias="distributor", description="An organization that distributes the packaged device.") - udiDeviceIdentifier_field: List[DeviceDefinition_UdiDeviceIdentifierModel] = Field(default_factory=list, alias="udiDeviceIdentifier", description="Unique Device Identifier (UDI) Barcode string on the packaging.") - packaging_field: List[DeviceDefinition_PackagingModel] = Field(default_factory=list, alias="packaging", description="Allows packages within packages.") - -class DeviceDefinition_DistributorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Distributor's human-readable name.") - organizationReference_field: List[ReferenceModel] = Field(default_factory=list, alias="organizationReference", description="Distributor as an Organization resource.") - -class DeviceDefinition_VersionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the device version, e.g. manufacturer, approved, internal.") - component_field: IdentifierModel = Field(default=None, alias="component", description="The hardware or software module of the device to which the version applies.") - value_field: stringModel = Field(default=None, alias="value", description="The version text.") - -class DeviceDefinition_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code that specifies the property such as a resolution or color being represented.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the property specified by the associated property.type code.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the property specified by the associated property.type code.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the property specified by the associated property.type code.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the property specified by the associated property.type code.") - -class DeviceDefinition_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - relation_field: CodingModel = Field(default=None, alias="relation", description="The type indicates the relationship of the related device to the device instance.") - relatedDevice_field: CodeableReferenceModel = Field(default=None, alias="relatedDevice", description="A reference to the linked device.") - -class DeviceDefinition_MaterialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - substance_field: CodeableConceptModel = Field(default=None, alias="substance", description="A substance that the device contains, may contain, or is made of - for example latex - to be used to determine patient compatibility. This is not intended to represent the composition of the device, only the clinically relevant materials.") - alternate_field: booleanModel = Field(default=None, alias="alternate", description="Indicates an alternative material of the device.") - allergenicIndicator_field: booleanModel = Field(default=None, alias="allergenicIndicator", description="Whether the substance is a known or suspected allergen.") - -class DeviceDefinition_GuidelineModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The circumstances that form the setting for using the device.") - usageInstruction_field: markdownModel = Field(default=None, alias="usageInstruction", description="Detailed written and visual directions for the user on how to use the device.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="A source of information or reference for this guideline.") - indication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="indication", description="A clinical condition for which the device was designed to be used.") - contraindication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="contraindication", description="A specific situation when a device should not be used because it may cause harm.") - warning_field: List[CodeableConceptModel] = Field(default_factory=list, alias="warning", description="Specific hazard alert information that a user needs to know before using the device.") - intendedUse_field: stringModel = Field(default=None, alias="intendedUse", description="A description of the general purpose or medical use of the device or its function.") - -class DeviceDefinition_CorrectiveActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - recall_field: booleanModel = Field(default=None, alias="recall", description="Whether the last corrective action known for this device was a recall.") - scope_field: codeModel = Field(default=None, alias="scope", description="The scope of the corrective action - whether the action targeted all units of a given device model, or only a specific set of batches identified by lot numbers, or individually identified devices identified by the serial name.") - period_field: PeriodModel = Field(default=None, alias="period", description="Start and end dates of the corrective action.") - -class DeviceDefinition_ChargeItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - chargeItemCode_field: CodeableReferenceModel = Field(default=None, alias="chargeItemCode", description="The code or reference for the charge item.") - count_field: QuantityModel = Field(default=None, alias="count", description="Coefficient applicable to the billing code.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="A specific time period in which this charge item applies.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The context to which this charge item applies.") - -class DeviceDispenseModel(BaseModel): - resourceType_field: str = "DeviceDispense" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this dispensation.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The order or request that this dispense is fulfilling.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="The bigger event that this dispense is a part of.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the set of dispense events.") - statusReason_field: CodeableReferenceModel = Field(default=None, alias="statusReason", description="Indicates the reason why a dispense was or was not performed.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Indicates the type of device dispense.") - device_field: CodeableReferenceModel = Field(default=None, alias="device", description="Identifies the device being dispensed. This is either a link to a resource representing the details of the device or a simple attribute carrying a code that identifies the device from a known list of devices.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="A link to a resource representing the person to whom the device is intended.") - receiver_field: ReferenceModel = Field(default=None, alias="receiver", description="Identifies the person who picked up the device or the person or location where the device was delivered. This may be a patient or their caregiver, but some cases exist where it can be a healthcare professional or a location.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this event.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information that supports the device being dispensed.") - performer_field: List[DeviceDispense_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the event.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The principal physical location where the dispense was performed.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates the type of dispensing event that is performed.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of devices that have been dispensed.") - preparedDate_field: dateTimeModel = Field(default=None, alias="preparedDate", description="The time when the dispensed product was packaged and reviewed.") - whenHandedOver_field: dateTimeModel = Field(default=None, alias="whenHandedOver", description="The time the dispensed product was made available to the patient or their representative.") - destination_field: ReferenceModel = Field(default=None, alias="destination", description="Identification of the facility/location where the device was /should be shipped to, as part of the dispense process.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the dispense that could not be conveyed in the other attributes.") - usageInstruction_field: markdownModel = Field(default=None, alias="usageInstruction", description="The full representation of the instructions.") - eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="A summary of the events of interest that have occurred, such as when the dispense was verified.") - -class DeviceDispense_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the device.") - -class DeviceMetricModel(BaseModel): - resourceType_field: str = "DeviceMetric" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Instance identifiers assigned to a device, by the device or gateway software, manufacturers, other organizations or owners. For example, handle ID.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.") - unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.") - device_field: ReferenceModel = Field(default=None, alias="device", description="Describes the link to the Device. This is also known as a channel device.") - operationalStatus_field: codeModel = Field(default=None, alias="operationalStatus", description="Indicates current operational state of the device. For example: On, Off, Standby, etc.") - color_field: codeModel = Field(default=None, alias="color", description="The preferred color associated with the metric (e.g., display color). This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth; the metrics are displayed in different characteristic colors, such as HR in blue, BP in green, and PR and SpO2 in magenta.") - category_field: codeModel = Field(default=None, alias="category", description="Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.") - measurementFrequency_field: QuantityModel = Field(default=None, alias="measurementFrequency", description="The frequency at which the metric is taken or recorded. Devices measure metrics at a wide range of frequencies; for example, an ECG might sample measurements in the millisecond range, while an NIBP might trigger only once an hour. Less often, the measurementFrequency may be based on a unit other than time, such as distance (e.g. for a measuring wheel). The update period may be different than the measurement frequency, if the device does not update the published observed value with the same frequency as it was measured.") - calibration_field: List[DeviceMetric_CalibrationModel] = Field(default_factory=list, alias="calibration", description="Describes the calibrations that have been performed or that are required to be performed.") - -class DeviceMetric_CalibrationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="Describes the type of the calibration method.") - state_field: codeModel = Field(default=None, alias="state", description="Describes the state of the calibration.") - time_field: instantModel = Field(default=None, alias="time", description="Describes the time last calibration has been performed.") - -class DeviceRequestModel(BaseModel): - resourceType_field: str = "DeviceRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this order by the orderer or by the receiver.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this DeviceRequest.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this DeviceRequest.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Plan/proposal/order fulfilled by this request.") - replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="The request takes the place of the referenced completed or terminated request(s).") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the request.") - intent_field: codeModel = Field(default=None, alias="intent", description="Whether the request is a proposal, plan, an original order or a reflex order.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the request should be addressed with respect to other requests.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true, indicates that the provider is asking for the patient to either stop using or to not start using the specified device or category of devices. For example, the patient has undergone surgery and the provider is indicating that the patient should not wear contact lenses.") - code_field: CodeableReferenceModel = Field(default=None, alias="code", description="The details of the device to be used.") - quantity_field: integerModel = Field(default=None, alias="quantity", description="The number of devices to be provided.") - parameter_field: List[DeviceRequest_ParameterModel] = Field(default_factory=list, alias="parameter", description="Specific parameters for the ordered item. For example, the prism value for lenses.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient who will use the device.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="An encounter that provides additional context in which this request is made.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. Every 8 hours; Three times a day; 1/2 an hour before breakfast for 10 days from 23-Dec 2011:; 15 Oct 2013, 17 Oct 2013 and 1 Nov 2013.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. Every 8 hours; Three times a day; 1/2 an hour before breakfast for 10 days from 23-Dec 2011:; 15 Oct 2013, 17 Oct 2013 and 1 Nov 2013.") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="When the request transitioned to being actionable.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The individual or entity who initiated the request and has responsibility for its activation.") - performer_field: CodeableReferenceModel = Field(default=None, alias="performer", description="The desired individual or entity to provide the device to the subject of the request (e.g., patient, location).") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Reason or justification for the use of this device.") - asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="This status is to indicate whether the request is a PRN or may be given as needed.") - asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="The reason for using the device.") - insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.") - supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Additional clinical information about the patient that may influence the request fulfilment. For example, this may include where on the subject's body the device will be used (i.e. the target site).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.") - relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Key events in the history of the request.") - -class DeviceRequest_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code or string that identifies the device detail being asserted.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the device detail.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the device detail.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the device detail.") - -class DeviceUsageModel(BaseModel): - resourceType_field: str = "DeviceUsage" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An external identifier for this statement such as an IRI.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this DeviceUsage.") - status_field: codeModel = Field(default=None, alias="status", description="A code representing the patient or other source's judgment about the state of the device used that this statement is about. Generally this will be active or completed.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="This attribute indicates a category for the statement - The device statement may be made in an inpatient or outpatient settting (inpatient | outpatient | community | patientspecified).") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who used the device.") - derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="Allows linking the DeviceUsage to the underlying Request, or to other information that supports or is used to derive the DeviceUsage.") - context_field: ReferenceModel = Field(default=None, alias="context", description="The encounter or episode of care that establishes the context for this device use statement.") - timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="How often the device was used.") - timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="How often the device was used.") - dateAsserted_field: dateTimeModel = Field(default=None, alias="dateAsserted", description="The time at which the statement was recorded by informationSource.") - usageStatus_field: CodeableConceptModel = Field(default=None, alias="usageStatus", description="The status of the device usage, for example always, sometimes, never. This is not the same as the status of the statement.") - usageReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="usageReason", description="The reason for asserting the usage status - for example forgot, lost, stolen, broken.") - adherence_field: DeviceUsage_AdherenceModel = Field(default=None, alias="adherence", description="This indicates how or if the device is being used.") - informationSource_field: ReferenceModel = Field(default=None, alias="informationSource", description="Who reported the device was being used by the patient.") - device_field: CodeableReferenceModel = Field(default=None, alias="device", description="Code or Reference to device used.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Reason or justification for the use of the device. A coded concept, or another resource whose existence justifies this DeviceUsage.") - bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="Indicates the anotomic location on the subject's body where the device was used ( i.e. the target).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.") - -class DeviceUsage_AdherenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Type of adherence.") - reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="Reason for adherence type.") - -class DiagnosticReportModel(BaseModel): - resourceType_field: str = "DiagnosticReport" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this report by the performer or other systems.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Details concerning a service requested.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the diagnostic report.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposes.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code or name that describes this diagnostic report.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject of the report. Usually, but not always, this is a patient. However, diagnostic services also perform analyses on specimens collected from a variety of other sources.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.") - issued_field: instantModel = Field(default=None, alias="issued", description="The date and time that this version of the report was made available to providers, typically after the report was reviewed and verified.") - performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="The diagnostic service that is responsible for issuing the report.") - resultsInterpreter_field: List[ReferenceModel] = Field(default_factory=list, alias="resultsInterpreter", description="The practitioner or organization that is responsible for the report's conclusions and interpretations.") - specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="Details about the specimens on which this diagnostic report is based.") - result_field: List[ReferenceModel] = Field(default_factory=list, alias="result", description="[Observations](observation.html) that are part of this diagnostic report.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments about the diagnostic report.") - study_field: List[ReferenceModel] = Field(default_factory=list, alias="study", description="One or more links to full details of any study performed during the diagnostic investigation. An ImagingStudy might comprise a set of radiologic images obtained via a procedure that are analyzed as a group. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images. A GenomicStudy might comprise one or more analyses, each serving a specific purpose. These analyses may vary in method (e.g., karyotyping, CNV, or SNV detection), performer, software, devices used, or regions targeted.") - supportingInfo_field: List[DiagnosticReport_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="This backbone element contains supporting information that was used in the creation of the report not included in the results already included in the report.") - media_field: List[DiagnosticReport_MediaModel] = Field(default_factory=list, alias="media", description="A list of key images or data associated with this report. The images or data are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).") - composition_field: ReferenceModel = Field(default=None, alias="composition", description="Reference to a Composition resource instance that provides structure for organizing the contents of the DiagnosticReport.") - conclusion_field: markdownModel = Field(default=None, alias="conclusion", description="Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic report.") - conclusionCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="conclusionCode", description="One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic report.") - presentedForm_field: List[AttachmentModel] = Field(default_factory=list, alias="presentedForm", description="Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.") - -class DiagnosticReport_SupportingInfoModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The code value for the role of the supporting information in the diagnostic report.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="The reference for the supporting information in the diagnostic report.") - -class DiagnosticReport_MediaModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - comment_field: stringModel = Field(default=None, alias="comment", description="A comment about the image or data. Typically, this is used to provide an explanation for why the image or data is included, or to draw the viewer's attention to important features.") - link_field: ReferenceModel = Field(default=None, alias="link", description="Reference to the image or data source.") - -class DocumentReferenceModel(BaseModel): - resourceType_field: str = "DocumentReference" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Other business identifiers associated with the document, including version independent identifiers.") - version_field: stringModel = Field(default=None, alias="version", description="An explicitly assigned identifer of a variation of the content in the DocumentReference.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A procedure that is fulfilled in whole or in part by the creation of this media.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this document reference.") - docStatus_field: codeModel = Field(default=None, alias="docStatus", description="The status of the underlying document.") - modality_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modality", description="Imaging modality used. This may include both acquisition and non-acquisition modalities.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A categorization for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).") - context_field: List[ReferenceModel] = Field(default_factory=list, alias="context", description="Describes the clinical encounter or type of care that the document content is associated with.") - event_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="event", description="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the type Code, such as a History and Physical Report in which the procedure being documented is necessarily a History and Physical act.") - bodySite_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="bodySite", description="The anatomic structures included in the document.") - facilityType_field: CodeableConceptModel = Field(default=None, alias="facilityType", description="The kind of facility where the patient was seen.") - practiceSetting_field: CodeableConceptModel = Field(default=None, alias="practiceSetting", description="This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty.") - period_field: PeriodModel = Field(default=None, alias="period", description="The time period over which the service that is described by the document was provided.") - date_field: instantModel = Field(default=None, alias="date", description="When the document reference was created.") - author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for adding the information to the document.") - attester_field: List[DocumentReference_AttesterModel] = Field(default_factory=list, alias="attester", description="A participant who has authenticated the accuracy of the document.") - custodian_field: ReferenceModel = Field(default=None, alias="custodian", description="Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.") - relatesTo_field: List[DocumentReference_RelatesToModel] = Field(default_factory=list, alias="relatesTo", description="Relationships that this document has with other document references that already exist.") - description_field: markdownModel = Field(default=None, alias="description", description="Human-readable description of the source document.") - securityLabel_field: List[CodeableConceptModel] = Field(default_factory=list, alias="securityLabel", description="A set of Security-Tag codes specifying the level of privacy/security of the Document found at DocumentReference.content.attachment.url. Note that DocumentReference.meta.security contains the security labels of the data elements in DocumentReference, while DocumentReference.securityLabel contains the security labels for the document the reference refers to. The distinction recognizes that the document may contain sensitive information, while the DocumentReference is metadata about the document and thus might not be as sensitive as the document. For example: a psychotherapy episode may contain highly sensitive information, while the metadata may simply indicate that some episode happened.") - content_field: List[DocumentReference_ContentModel] = Field(default_factory=list, alias="content", description="The document and format referenced. If there are multiple content element repetitions, these must all represent the same document in different format, or attachment metadata.") - -class DocumentReference_AttesterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - mode_field: CodeableConceptModel = Field(default=None, alias="mode", description="The type of attestation the authenticator offers.") - time_field: dateTimeModel = Field(default=None, alias="time", description="When the document was attested by the party.") - party_field: ReferenceModel = Field(default=None, alias="party", description="Who attested the document in the specified way.") - -class DocumentReference_RelatesToModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of relationship that this document has with anther document.") - target_field: ReferenceModel = Field(default=None, alias="target", description="The target document of this relationship.") - -class DocumentReference_ContentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - attachment_field: AttachmentModel = Field(default=None, alias="attachment", description="The document or URL of the document along with critical metadata to prove content has integrity.") - profile_field: List[DocumentReference_ProfileModel] = Field(default_factory=list, alias="profile", description="An identifier of the document constraints, encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.") - -class DocumentReference_ProfileModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Code|uri|canonical.") - -class EncounterModel(BaseModel): - resourceType_field: str = "Encounter" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier(s) by which this encounter is known.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the encounter (not the state of the patient within the encounter - that is subjectState).") - class_field: List[CodeableConceptModel] = Field(default_factory=list, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Indicates the urgency of the encounter.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") - serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="Broad categorization of the service that is to be provided (e.g. cardiology).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.") - subjectStatus_field: CodeableConceptModel = Field(default=None, alias="subjectStatus", description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.") - episodeOfCare_field: List[ReferenceModel] = Field(default_factory=list, alias="episodeOfCare", description="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The request this encounter satisfies (e.g. incoming referral or procedure request).") - careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="The group(s) of individuals, organizations that are allocated to participate in this encounter. The participants backbone will record the actuals of when these individuals participated during the encounter.") - partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="Another Encounter of which this encounter is a part of (administratively or in time).") - serviceProvider_field: ReferenceModel = Field(default=None, alias="serviceProvider", description="The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the colonoscopy example on the Encounter examples tab.") - participant_field: List[Encounter_ParticipantModel] = Field(default_factory=list, alias="participant", description="The list of people responsible for providing the service.") - appointment_field: List[ReferenceModel] = Field(default_factory=list, alias="appointment", description="The appointment that scheduled this encounter.") - virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. conference call).") - actualPeriod_field: PeriodModel = Field(default=None, alias="actualPeriod", description="The actual start and end time of the encounter.") - plannedStartDate_field: dateTimeModel = Field(default=None, alias="plannedStartDate", description="The planned start date/time (or admission date) of the encounter.") - plannedEndDate_field: dateTimeModel = Field(default=None, alias="plannedEndDate", description="The planned end date/time (or discharge date) of the encounter.") - length_field: DurationModel = Field(default=None, alias="length", description="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.") - reason_field: List[Encounter_ReasonModel] = Field(default_factory=list, alias="reason", description="The list of medical reasons that are expected to be addressed during the episode of care.") - diagnosis_field: List[Encounter_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="The list of diagnosis relevant to this encounter.") - account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that may be used for billing for this Encounter.") - dietPreference_field: List[CodeableConceptModel] = Field(default_factory=list, alias="dietPreference", description="Diet preferences reported by the patient.") - specialArrangement_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialArrangement", description="Any special requests that have been made for this encounter, such as the provision of specific equipment or other things.") - specialCourtesy_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialCourtesy", description="Special courtesies that may be provided to the patient during the encounter (VIP, board member, professional courtesy).") - admission_field: Encounter_AdmissionModel = Field(default=None, alias="admission", description="Details about the stay during which a healthcare service is provided.") - location_field: List[Encounter_LocationModel] = Field(default_factory=list, alias="location", description="List of locations where the patient has been during this encounter.") - -class Encounter_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Role of participant in encounter.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Person involved in the encounter, the patient/group is also included here to indicate that the patient was actually participating in the encounter. Not including the patient here covers use cases such as a case meeting between practitioners about a patient - non contact times.") - -class Encounter_ReasonModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).") - value_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="value", description="Reason the encounter takes place, expressed as a code or a reference to another resource. For admissions, this can be used for a coded admission diagnosis.") - -class Encounter_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - condition_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="condition", description="The coded diagnosis or a reference to a Condition (with other resources referenced in the evidence.detail), the use property will indicate the purpose of this specific diagnosis.") - use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).") - -class Encounter_AdmissionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - preAdmissionIdentifier_field: IdentifierModel = Field(default=None, alias="preAdmissionIdentifier", description="Pre-admission identifier.") - origin_field: ReferenceModel = Field(default=None, alias="origin", description="The location/organization from which the patient came before admission.") - admitSource_field: CodeableConceptModel = Field(default=None, alias="admitSource", description="From where patient was admitted (physician referral, transfer).") - reAdmission_field: CodeableConceptModel = Field(default=None, alias="reAdmission", description="Indicates that this encounter is directly related to a prior admission, often because the conditions addressed in the prior admission were not fully addressed.") - destination_field: ReferenceModel = Field(default=None, alias="destination", description="Location/organization to which the patient is discharged.") - dischargeDisposition_field: CodeableConceptModel = Field(default=None, alias="dischargeDisposition", description="Category or kind of location after discharge.") - -class Encounter_LocationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the encounter takes place.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.") - form_field: CodeableConceptModel = Field(default=None, alias="form", description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the patient was present at the location.") - -class EncounterHistoryModel(BaseModel): - resourceType_field: str = "EncounterHistory" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter associated with this set of historic values.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier(s) by which this encounter is known.") - status_field: codeModel = Field(default=None, alias="status", description="planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown.") - class_field: CodeableConceptModel = Field(default=None, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") - serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="Broad categorization of the service that is to be provided (e.g. cardiology).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.") - subjectStatus_field: CodeableConceptModel = Field(default=None, alias="subjectStatus", description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.") - actualPeriod_field: PeriodModel = Field(default=None, alias="actualPeriod", description="The start and end time associated with this set of values associated with the encounter, may be different to the planned times for various reasons.") - plannedStartDate_field: dateTimeModel = Field(default=None, alias="plannedStartDate", description="The planned start date/time (or admission date) of the encounter.") - plannedEndDate_field: dateTimeModel = Field(default=None, alias="plannedEndDate", description="The planned end date/time (or discharge date) of the encounter.") - length_field: DurationModel = Field(default=None, alias="length", description="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.") - location_field: List[EncounterHistory_LocationModel] = Field(default_factory=list, alias="location", description="The location of the patient at this point in the encounter, the multiple cardinality permits de-normalizing the levels of the location hierarchy, such as site/ward/room/bed.") - -class EncounterHistory_LocationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the encounter takes place.") - form_field: CodeableConceptModel = Field(default=None, alias="form", description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") - -class EndpointModel(BaseModel): - resourceType_field: str = "Endpoint" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the organization that is used to identify the endpoint across multiple disparate systems.") - status_field: codeModel = Field(default=None, alias="status", description="The endpoint status represents the general expected availability of an endpoint.") - connectionType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="connectionType", description="A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook).") - name_field: stringModel = Field(default=None, alias="name", description="A friendly name that this endpoint can be referred to with.") - description_field: stringModel = Field(default=None, alias="description", description="The description of the endpoint and what it is for (typically used as supplemental information in an endpoint directory describing its usage/purpose).") - environmentType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="environmentType", description="The type of environment(s) exposed at this endpoint (dev, prod, test, etc.).") - managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization that manages this endpoint (even if technically another organization is hosting this in the cloud, it is the organization associated with the data).") - contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for a human to contact about the endpoint. The primary use of this for system administrator troubleshooting.") - period_field: PeriodModel = Field(default=None, alias="period", description="The interval during which the endpoint is expected to be operational.") - payload_field: List[Endpoint_PayloadModel] = Field(default_factory=list, alias="payload", description="The set of payloads that are provided/available at this endpoint.") - address_field: urlModel = Field(default=None, alias="address", description="The uri that describes the actual end-point to connect to.") - header_field: List[stringModel] = Field(default_factory=list, alias="header", description="Additional headers / information to send as part of the notification.") - -class Endpoint_PayloadModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The payload type describes the acceptable content that can be communicated on the endpoint.") - mimeType_field: List[codeModel] = Field(default_factory=list, alias="mimeType", description="The mime type to send the payload in - e.g. application/fhir+xml, application/fhir+json. If the mime type is not specified, then the sender could send any content (including no content depending on the connectionType).") - -class EnrollmentRequestModel(BaseModel): - resourceType_field: str = "EnrollmentRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The Response business identifier.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date when this resource was created.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The Insurer who is target of the request.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="The practitioner who is responsible for the services rendered to the patient.") - candidate_field: ReferenceModel = Field(default=None, alias="candidate", description="Patient Resource.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the program or plan identification, underwriter or payor.") - -class EnrollmentResponseModel(BaseModel): - resourceType_field: str = "EnrollmentResponse" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The Response business identifier.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - request_field: ReferenceModel = Field(default=None, alias="request", description="Original request resource reference.") - outcome_field: codeModel = Field(default=None, alias="outcome", description="Processing status: error, complete.") - disposition_field: stringModel = Field(default=None, alias="disposition", description="A description of the status of the adjudication.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date when the enclosed suite of services were performed or completed.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="The Insurer who produced this adjudicated response.") - requestProvider_field: ReferenceModel = Field(default=None, alias="requestProvider", description="The practitioner who is responsible for the services rendered to the patient.") - -class EpisodeOfCareModel(BaseModel): - resourceType_field: str = "EpisodeOfCare" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes.") - status_field: codeModel = Field(default=None, alias="status", description="planned | waitlist | active | onhold | finished | cancelled.") - statusHistory_field: List[EpisodeOfCare_StatusHistoryModel] = Field(default_factory=list, alias="statusHistory", description="The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource).") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care.") - reason_field: List[EpisodeOfCare_ReasonModel] = Field(default_factory=list, alias="reason", description="The list of medical reasons that are expected to be addressed during the episode of care.") - diagnosis_field: List[EpisodeOfCare_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="The list of medical conditions that were addressed during the episode of care.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who is the focus of this episode of care.") - managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization that has assumed the specific responsibilities for care coordination, care delivery, or other services for the specified duration.") - period_field: PeriodModel = Field(default=None, alias="period", description="The interval during which the managing organization assumes the defined responsibility.") - referralRequest_field: List[ReferenceModel] = Field(default_factory=list, alias="referralRequest", description="Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals.") - careManager_field: ReferenceModel = Field(default=None, alias="careManager", description="The practitioner that is the care manager/care coordinator for this patient.") - careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="The list of practitioners that may be facilitating this episode of care for specific purposes.") - account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that may be used for billing for this EpisodeOfCare.") - -class EpisodeOfCare_StatusHistoryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - status_field: codeModel = Field(default=None, alias="status", description="planned | waitlist | active | onhold | finished | cancelled.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period during this EpisodeOfCare that the specific status applied.") - -class EpisodeOfCare_ReasonModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - use_field: CodeableConceptModel = Field(default=None, alias="use", description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).") - value_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="value", description="The medical reason that is expected to be addressed during the episode of care, expressed as a text, code or a reference to another resource.") - -class EpisodeOfCare_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - condition_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="condition", description="The medical condition that was addressed during the episode of care, expressed as a text, code or a reference to another resource.") - use_field: CodeableConceptModel = Field(default=None, alias="use", description="Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …).") - -class EventDefinitionModel(BaseModel): - resourceType_field: str = "EventDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this event definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this event definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the event definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this event definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the event definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the event definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the event definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the event definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this event definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this event definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the event definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the event definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the event definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the event definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate event definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the event definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this event definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the event definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the event definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the event definition content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the module. Topics provide a high-level categorization of the module that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related resources such as additional documentation, justification, or bibliographic references.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the event definition giving additional information about its content.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code or group definition that describes the intended subject of the event definition.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code or group definition that describes the intended subject of the event definition.") - usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the event definition is used from a clinical perspective.") - trigger_field: List[TriggerDefinitionModel] = Field(default_factory=list, alias="trigger", description="The trigger element defines when the event occurs. If more than one trigger condition is specified, the event fires whenever any one of the trigger conditions is met.") - -class EvidenceModel(BaseModel): - resourceType_field: str = "Evidence" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this evidence when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this summary when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the summary when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the summary author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the summary.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this summary. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this resource is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the summary was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the summary changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the evidence.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the evidence from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this Evidence is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the Evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the Evidence.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual, organization, or device primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individiual, organization, or device primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individiual, organization, or device primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individiual, organization, or device responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Link or citation to artifact associated with the summary.") - citeAsReference_field: ReferenceModel = Field(default=None, alias="citeAsReference", description="Citation Resource or display of suggested citation for this evidence.") - assertion_field: markdownModel = Field(default=None, alias="assertion", description="Declarative description of the Evidence.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") - variableDefinition_field: List[Evidence_VariableDefinitionModel] = Field(default_factory=list, alias="variableDefinition", description="Evidence variable such as population, exposure, or outcome.") - synthesisType_field: CodeableConceptModel = Field(default=None, alias="synthesisType", description="The method to combine studies.") - studyDesign_field: List[CodeableConceptModel] = Field(default_factory=list, alias="studyDesign", description="The design of the study that produced this evidence. The design is described with any number of study design characteristics.") - statistic_field: List[Evidence_StatisticModel] = Field(default_factory=list, alias="statistic", description="Values and parameters for a single statistic.") - certainty_field: List[Evidence_CertaintyModel] = Field(default_factory=list, alias="certainty", description="Assessment of certainty, confidence in the estimates, or quality of the evidence.") - -class Evidence_VariableDefinitionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="A text description or summary of the variable.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") - variableRole_field: CodeableConceptModel = Field(default=None, alias="variableRole", description="population | subpopulation | exposure | referenceExposure | measuredVariable | confounder.") - observed_field: ReferenceModel = Field(default=None, alias="observed", description="Definition of the actual variable related to the statistic(s).") - intended_field: ReferenceModel = Field(default=None, alias="intended", description="Definition of the intended variable related to the Evidence.") - directnessMatch_field: CodeableConceptModel = Field(default=None, alias="directnessMatch", description="Indication of quality of match between intended variable to actual variable.") - -class Evidence_StatisticModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="A description of the content value of the statistic.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") - statisticType_field: CodeableConceptModel = Field(default=None, alias="statisticType", description="Type of statistic, e.g., relative risk.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="When the measured variable is handled categorically, the category element is used to define which category the statistic is reporting.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Statistic value.") - numberOfEvents_field: unsignedIntModel = Field(default=None, alias="numberOfEvents", description="The number of events associated with the statistic, where the unit of analysis is different from numberAffected, sampleSize.knownDataCount and sampleSize.numberOfParticipants.") - numberAffected_field: unsignedIntModel = Field(default=None, alias="numberAffected", description="The number of participants affected where the unit of analysis is the same as sampleSize.knownDataCount and sampleSize.numberOfParticipants.") - sampleSize_field: Evidence_SampleSizeModel = Field(default=None, alias="sampleSize", description="Number of samples in the statistic.") - attributeEstimate_field: List[Evidence_AttributeEstimateModel] = Field(default_factory=list, alias="attributeEstimate", description="A statistical attribute of the statistic such as a measure of heterogeneity.") - modelCharacteristic_field: List[Evidence_ModelCharacteristicModel] = Field(default_factory=list, alias="modelCharacteristic", description="A component of the method to generate the statistic.") - -class Evidence_SampleSizeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Human-readable summary of population sample size.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnote or explanatory note about the sample size.") - numberOfStudies_field: unsignedIntModel = Field(default=None, alias="numberOfStudies", description="Number of participants in the population.") - numberOfParticipants_field: unsignedIntModel = Field(default=None, alias="numberOfParticipants", description="A human-readable string to clarify or explain concepts about the sample size.") - knownDataCount_field: unsignedIntModel = Field(default=None, alias="knownDataCount", description="Number of participants with known results for measured variables.") - -class Evidence_AttributeEstimateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Human-readable summary of the estimate.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnote or explanatory note about the estimate.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of attribute estimate, e.g., confidence interval or p value.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The singular quantity of the attribute estimate, for attribute estimates represented as single values; also used to report unit of measure.") - level_field: decimalModel = Field(default=None, alias="level", description="Use 95 for a 95% confidence interval.") - range_field: RangeModel = Field(default=None, alias="range", description="Lower bound of confidence interval.") - attributeEstimate_field: List[Evidence_AttributeEstimateModel] = Field(default_factory=list, alias="attributeEstimate", description="A nested attribute estimate; which is the attribute estimate of an attribute estimate.") - -class Evidence_ModelCharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Description of a component of the method to generate the statistic.") - value_field: QuantityModel = Field(default=None, alias="value", description="Further specification of the quantified value of the component of the method to generate the statistic.") - variable_field: List[Evidence_VariableModel] = Field(default_factory=list, alias="variable", description="A variable adjusted for in the adjusted analysis.") - attributeEstimate_field: List[Evidence_AttributeEstimateModel] = Field(default_factory=list, alias="attributeEstimate", description="An attribute of the statistic used as a model characteristic.") - -class Evidence_VariableModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - variableDefinition_field: ReferenceModel = Field(default=None, alias="variableDefinition", description="Description of the variable.") - handling_field: codeModel = Field(default=None, alias="handling", description="How the variable is classified for use in adjusted analysis.") - valueCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="valueCategory", description="Description for grouping of ordinal or polychotomous variables.") - valueQuantity_field: List[QuantityModel] = Field(default_factory=list, alias="valueQuantity", description="Discrete value for grouping of ordinal or polychotomous variables.") - valueRange_field: List[RangeModel] = Field(default_factory=list, alias="valueRange", description="Range of values for grouping of ordinal or polychotomous variables.") - -class Evidence_CertaintyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Textual description of certainty.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Footnotes and/or explanatory notes.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Aspect of certainty being rated.") - rating_field: CodeableConceptModel = Field(default=None, alias="rating", description="Assessment or judgement of the aspect.") - rater_field: stringModel = Field(default=None, alias="rater", description="Individual or group who did the rating.") - subcomponent_field: List[Evidence_CertaintyModel] = Field(default_factory=list, alias="subcomponent", description="A domain or subdomain of certainty.") - -class EvidenceReportModel(BaseModel): - resourceType_field: str = "EvidenceReport" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this EvidenceReport when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this summary is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the summary is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this EvidenceReport when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the {{title}} when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the {{title}} author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence without additional knowledge. (See the versionAlgorithm element.)") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the {{title}}. This name should be usable as an identifier for the resource by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the {{title}}.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this summary. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this {{title}} is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the {{title}} was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the {{title}} changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the evidence report.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the {{title}} from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence report instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this {{title}} is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual, organization, or device primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individiual, organization, or device primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individiual, organization, or device primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individiual, organization, or device responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Link, description or reference to artifact associated with the report.") - relatedIdentifier_field: List[IdentifierModel] = Field(default_factory=list, alias="relatedIdentifier", description="A formal identifier that is used to identify things closely related to this EvidenceReport.") - citeAsReference_field: ReferenceModel = Field(default=None, alias="citeAsReference", description="Citation Resource or display of suggested citation for this report.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the kind of report, such as grouping of classifiers, search results, or human-compiled expression.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Used for footnotes and annotations.") - subject_field: EvidenceReport_SubjectModel = Field(default=None, alias="subject", description="Specifies the subject or focus of the report. Answers What is this report about?.") - relatesTo_field: List[EvidenceReport_RelatesToModel] = Field(default_factory=list, alias="relatesTo", description="Relationships that this composition has with other compositions or documents that already exist.") - section_field: List[EvidenceReport_SectionModel] = Field(default_factory=list, alias="section", description="The root of the sections that make up the composition.") - -class EvidenceReport_SubjectModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - characteristic_field: List[EvidenceReport_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Characteristic.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Used for general notes and annotations not coded elsewhere.") - -class EvidenceReport_CharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Characteristic code.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Characteristic value.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Characteristic value.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Characteristic value.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Characteristic value.") - exclude_field: booleanModel = Field(default=None, alias="exclude", description="Is used to express not the characteristic.") - period_field: PeriodModel = Field(default=None, alias="period", description="Timeframe for the characteristic.") - -class EvidenceReport_RelatesToModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="The type of relationship that this composition has with anther composition or document.") - target_field: EvidenceReport_TargetModel = Field(default=None, alias="target", description="The target composition/document of this relationship.") - -class EvidenceReport_TargetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="Target of the relationship URL.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Target of the relationship Identifier.") - display_field: markdownModel = Field(default=None, alias="display", description="Target of the relationship Display.") - resource_field: ReferenceModel = Field(default=None, alias="resource", description="Target of the relationship Resource reference.") - -class EvidenceReport_SectionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.") - focus_field: CodeableConceptModel = Field(default=None, alias="focus", description="A code identifying the kind of content contained within the section. This should be consistent with the section title.") - focusReference_field: ReferenceModel = Field(default=None, alias="focusReference", description="A definitional Resource identifying the kind of content contained within the section. This should be consistent with the section title.") - author_field: List[ReferenceModel] = Field(default_factory=list, alias="author", description="Identifies who is responsible for the information in this section, not necessarily who typed it in.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is peferred to contain sufficient detail to make it acceptable for a human to just read the narrative.") - mode_field: codeModel = Field(default=None, alias="mode", description="How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.") - orderedBy_field: CodeableConceptModel = Field(default=None, alias="orderedBy", description="Specifies the order applied to the items in the section entries.") - entryClassifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="entryClassifier", description="Specifies any type of classification of the evidence report.") - entryReference_field: List[ReferenceModel] = Field(default_factory=list, alias="entryReference", description="A reference to the actual resource from which the narrative in the section is derived.") - entryQuantity_field: List[QuantityModel] = Field(default_factory=list, alias="entryQuantity", description="Quantity as content.") - emptyReason_field: CodeableConceptModel = Field(default=None, alias="emptyReason", description="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.") - section_field: List[EvidenceReport_SectionModel] = Field(default_factory=list, alias="section", description="A nested sub-section within this section.") - -class EvidenceVariableModel(BaseModel): - resourceType_field: str = "EvidenceVariable" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this evidence variable when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this evidence variable is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence variable is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this evidence variable when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the evidence variable when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence variable author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the evidence variable. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the evidence variable.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this evidence variable. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this resource is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the evidence variable was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the evidence variable changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the evidence variable.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the evidence variable from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate evidence variable instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this EvidenceVariable is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the resource and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the resource.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the resource content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") - shortTitle_field: stringModel = Field(default=None, alias="shortTitle", description="The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A human-readable string to clarify or explain concepts about the resource.") - actual_field: booleanModel = Field(default=None, alias="actual", description="True if the actual variable measured, false if a conceptual representation of the intended variable.") - characteristic_field: List[EvidenceVariable_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="A defining factor of the EvidenceVariable. Multiple characteristics are applied with and semantics.") - handling_field: codeModel = Field(default=None, alias="handling", description="The method of handling in statistical analysis.") - category_field: List[EvidenceVariable_CategoryModel] = Field(default_factory=list, alias="category", description="A grouping for ordinal or polychotomous variables.") - -class EvidenceVariable_CharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: idModel = Field(default=None, alias="linkId", description="Label used for when a characteristic refers to another characteristic.") - description_field: markdownModel = Field(default=None, alias="description", description="A short, natural language description of the characteristic that could be used to communicate the criteria to an end-user.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A human-readable string to clarify or explain concepts about the characteristic.") - exclude_field: booleanModel = Field(default=None, alias="exclude", description="When true, this characteristic is an exclusion criterion. In other words, not matching this characteristic definition is equivalent to meeting this criterion.") - definitionReference_field: ReferenceModel = Field(default=None, alias="definitionReference", description="Defines the characteristic using a Reference.") - definitionCanonical_field: canonicalModel = Field(default=None, alias="definitionCanonical", description="Defines the characteristic using Canonical.") - definitionCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="definitionCodeableConcept", description="Defines the characteristic using CodeableConcept.") - definitionExpression_field: ExpressionModel = Field(default=None, alias="definitionExpression", description="Defines the characteristic using Expression.") - definitionId_field: idModel = Field(default=None, alias="definitionId", description="Defines the characteristic using id.") - definitionByTypeAndValue_field: EvidenceVariable_DefinitionByTypeAndValueModel = Field(default=None, alias="definitionByTypeAndValue", description="Defines the characteristic using both a type and value[x] elements.") - definitionByCombination_field: EvidenceVariable_DefinitionByCombinationModel = Field(default=None, alias="definitionByCombination", description="Defines the characteristic as a combination of two or more characteristics.") - instancesQuantity_field: QuantityModel = Field(default=None, alias="instancesQuantity", description="Number of occurrences meeting the characteristic.") - instancesRange_field: RangeModel = Field(default=None, alias="instancesRange", description="Number of occurrences meeting the characteristic.") - durationQuantity_field: QuantityModel = Field(default=None, alias="durationQuantity", description="Length of time in which the characteristic is met.") - durationRange_field: RangeModel = Field(default=None, alias="durationRange", description="Length of time in which the characteristic is met.") - timeFromEvent_field: List[EvidenceVariable_TimeFromEventModel] = Field(default_factory=list, alias="timeFromEvent", description="Timing in which the characteristic is determined.") - -class EvidenceVariable_DefinitionByTypeAndValueModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Used to express the type of characteristic.") - method_field: List[CodeableConceptModel] = Field(default_factory=list, alias="method", description="Method for how the characteristic value was determined.") - device_field: ReferenceModel = Field(default=None, alias="device", description="Device used for determining characteristic.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Defines the characteristic when paired with characteristic.type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Defines the characteristic when paired with characteristic.type.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Defines the characteristic when paired with characteristic.type.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Defines the characteristic when paired with characteristic.type.") - offset_field: CodeableConceptModel = Field(default=None, alias="offset", description="Defines the reference point for comparison when valueQuantity or valueRange is not compared to zero.") - -class EvidenceVariable_DefinitionByCombinationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Used to specify if two or more characteristics are combined with OR or AND.") - threshold_field: positiveIntModel = Field(default=None, alias="threshold", description="Provides the value of n when at-least or at-most codes are used.") - characteristic_field: List[EvidenceVariable_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="A defining factor of the characteristic.") - -class EvidenceVariable_TimeFromEventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Human readable description.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A human-readable string to clarify or explain concepts about the timeFromEvent.") - eventCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="eventCodeableConcept", description="The event used as a base point (reference point) in time.") - eventReference_field: ReferenceModel = Field(default=None, alias="eventReference", description="The event used as a base point (reference point) in time.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="Used to express the observation at a defined amount of time before or after the event.") - range_field: RangeModel = Field(default=None, alias="range", description="Used to express the observation within a period before and/or after the event.") - -class EvidenceVariable_CategoryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Description of the grouping.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Definition of the grouping.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Definition of the grouping.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Definition of the grouping.") - -class ExampleScenarioModel(BaseModel): - resourceType_field: str = "ExampleScenario" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this example scenario when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="Temporarily retained for tooling purposes.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the ExampleScenario.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this example scenario. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the example scenario was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the example scenario changes. (e.g. the 'content logical definition').") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the ExampleScenario from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate example scenario instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the example scenario is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - actor_field: List[ExampleScenario_ActorModel] = Field(default_factory=list, alias="actor", description="A system or person who shares or receives an instance within the scenario.") - instance_field: List[ExampleScenario_InstanceModel] = Field(default_factory=list, alias="instance", description="A single data collection that is shared as part of the scenario.") - process_field: List[ExampleScenario_ProcessModel] = Field(default_factory=list, alias="process", description="A group of operations that represents a significant step within a scenario.") - -class ExampleScenario_ActorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - key_field: stringModel = Field(default=None, alias="key", description="A unique string within the scenario that is used to reference the actor.") - type_field: codeModel = Field(default=None, alias="type", description="The category of actor - person or system.") - title_field: stringModel = Field(default=None, alias="title", description="The human-readable name for the actor used when rendering the scenario.") - description_field: markdownModel = Field(default=None, alias="description", description="An explanation of who/what the actor is and its role in the scenario.") - -class ExampleScenario_InstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - key_field: stringModel = Field(default=None, alias="key", description="A unique string within the scenario that is used to reference the instance.") - structureType_field: CodingModel = Field(default=None, alias="structureType", description="A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of.") - structureVersion_field: stringModel = Field(default=None, alias="structureVersion", description="Conveys the version of the data structure instantiated. I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with.") - title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the instance to be used in tables or diagrams.") - description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what the instance contains and what it's for.") - content_field: ReferenceModel = Field(default=None, alias="content", description="Points to an instance (typically an example) that shows the data that would corespond to this instance.") - version_field: List[ExampleScenario_VersionModel] = Field(default_factory=list, alias="version", description="Represents the instance as it was at a specific time-point.") - containedInstance_field: List[ExampleScenario_ContainedInstanceModel] = Field(default_factory=list, alias="containedInstance", description="References to other instances that can be found within this instance (e.g. the observations contained in a bundle).") - -class ExampleScenario_VersionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - key_field: stringModel = Field(default=None, alias="key", description="A unique string within the instance that is used to reference the version of the instance.") - title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the version to be used in tables or diagrams.") - description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what this specific version of the instance contains and represents.") - content_field: ReferenceModel = Field(default=None, alias="content", description="Points to an instance (typically an example) that shows the data that would flow at this point in the scenario.") - -class ExampleScenario_ContainedInstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - instanceReference_field: stringModel = Field(default=None, alias="instanceReference", description="A reference to the key of an instance found within this one.") - versionReference_field: stringModel = Field(default=None, alias="versionReference", description="A reference to the key of a specific version of an instance in this instance.") - -class ExampleScenario_ProcessModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the process to be used in tables or diagrams.") - description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what the process represents and what it does.") - preConditions_field: markdownModel = Field(default=None, alias="preConditions", description="Description of the initial state of the actors, environment and data before the process starts.") - postConditions_field: markdownModel = Field(default=None, alias="postConditions", description="Description of the final state of the actors, environment and data after the process has been successfully completed.") - step_field: List[ExampleScenario_StepModel] = Field(default_factory=list, alias="step", description="A significant action that occurs as part of the process.") - -class ExampleScenario_StepModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - number_field: stringModel = Field(default=None, alias="number", description="The sequential number of the step, e.g. 1.2.5.") - process_field: ExampleScenario_ProcessModel = Field(default=None, alias="process", description="Indicates that the step is a complex sub-process with its own steps.") - workflow_field: canonicalModel = Field(default=None, alias="workflow", description="Indicates that the step is defined by a seaparate scenario instance.") - operation_field: ExampleScenario_OperationModel = Field(default=None, alias="operation", description="The step represents a single operation invoked on receiver by sender.") - alternative_field: List[ExampleScenario_AlternativeModel] = Field(default_factory=list, alias="alternative", description="Indicates an alternative step that can be taken instead of the sub-process, scenario or operation. E.g. to represent non-happy-path/exceptional/atypical circumstances.") - pause_field: booleanModel = Field(default=None, alias="pause", description="If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event).") - -class ExampleScenario_OperationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodingModel = Field(default=None, alias="type", description="The standardized type of action (FHIR or otherwise).") - title_field: stringModel = Field(default=None, alias="title", description="A short descriptive label the step to be used in tables or diagrams.") - initiator_field: stringModel = Field(default=None, alias="initiator", description="The system that invokes the action/transmits the data.") - receiver_field: stringModel = Field(default=None, alias="receiver", description="The system on which the action is invoked/receives the data.") - description_field: markdownModel = Field(default=None, alias="description", description="An explanation of what the operation represents and what it does.") - initiatorActive_field: booleanModel = Field(default=None, alias="initiatorActive", description="If false, the initiator is deactivated right after the operation.") - receiverActive_field: booleanModel = Field(default=None, alias="receiverActive", description="If false, the receiver is deactivated right after the operation.") - request_field: ExampleScenario_ContainedInstanceModel = Field(default=None, alias="request", description="A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation.") - response_field: ExampleScenario_ContainedInstanceModel = Field(default=None, alias="response", description="A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any).") - -class ExampleScenario_AlternativeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked.") - description_field: markdownModel = Field(default=None, alias="description", description="A human-readable description of the alternative explaining when the alternative should occur rather than the base step.") - step_field: List[ExampleScenario_StepModel] = Field(default_factory=list, alias="step", description="Indicates the operation, sub-process or scenario that happens if the alternative option is selected.") - -class ExplanationOfBenefitModel(BaseModel): - resourceType_field: str = "ExplanationOfBenefit" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this explanation of benefit.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of claim, e.g. oral, pharmacy, vision, institutional, professional.") - subType_field: CodeableConceptModel = Field(default=None, alias="subType", description="A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service.") - use_field: codeModel = Field(default=None, alias="use", description="A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for forecast reimbursement is sought.") - billablePeriod_field: PeriodModel = Field(default=None, alias="billablePeriod", description="The period for which charges are being submitted.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") - enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Individual who created the claim, predetermination or preauthorization.") - insurer_field: ReferenceModel = Field(default=None, alias="insurer", description="The party responsible for authorization, adjudication and reimbursement.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="The provider which is responsible for the claim, predetermination or preauthorization.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="The provider-required urgency of processing the request. Typical values include: stat, normal deferred.") - fundsReserveRequested_field: CodeableConceptModel = Field(default=None, alias="fundsReserveRequested", description="A code to indicate whether and for whom funds are to be reserved for future claims.") - fundsReserve_field: CodeableConceptModel = Field(default=None, alias="fundsReserve", description="A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom.") - related_field: List[ExplanationOfBenefit_RelatedModel] = Field(default_factory=list, alias="related", description="Other claims which are related to this claim such as prior submissions or claims for related services or for the same event.") - prescription_field: ReferenceModel = Field(default=None, alias="prescription", description="Prescription is the document/authorization given to the claim author for them to provide products and services for which consideration (reimbursement) is sought. Could be a RX for medications, an 'order' for oxygen or wheelchair or physiotherapy treatments.") - originalPrescription_field: ReferenceModel = Field(default=None, alias="originalPrescription", description="Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products.") - event_field: List[ExplanationOfBenefit_EventModel] = Field(default_factory=list, alias="event", description="Information code for an event with a corresponding date or period.") - payee_field: ExplanationOfBenefit_PayeeModel = Field(default=None, alias="payee", description="The party to be reimbursed for cost of the products and services according to the terms of the policy.") - referral_field: ReferenceModel = Field(default=None, alias="referral", description="The referral information received by the claim author, it is not to be used when the author generates a referral for a patient. A copy of that referral may be provided as supporting information. Some insurers require proof of referral to pay for services or to pay specialist rates for services.") - encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") - facility_field: ReferenceModel = Field(default=None, alias="facility", description="Facility where the services were provided.") - claim_field: ReferenceModel = Field(default=None, alias="claim", description="The business identifier for the instance of the adjudication request: claim predetermination or preauthorization.") - claimResponse_field: ReferenceModel = Field(default=None, alias="claimResponse", description="The business identifier for the instance of the adjudication response: claim, predetermination or preauthorization response.") - outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of the claim, predetermination, or preauthorization processing.") - decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") - disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the adjudication.") - preAuthRef_field: List[stringModel] = Field(default_factory=list, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") - preAuthRefPeriod_field: List[PeriodModel] = Field(default_factory=list, alias="preAuthRefPeriod", description="The timeframe during which the supplied preauthorization reference may be quoted on claims to obtain the adjudication as provided.") - diagnosisRelatedGroup_field: CodeableConceptModel = Field(default=None, alias="diagnosisRelatedGroup", description="A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system.") - careTeam_field: List[ExplanationOfBenefit_CareTeamModel] = Field(default_factory=list, alias="careTeam", description="The members of the team who provided the products and services.") - supportingInfo_field: List[ExplanationOfBenefit_SupportingInfoModel] = Field(default_factory=list, alias="supportingInfo", description="Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues.") - diagnosis_field: List[ExplanationOfBenefit_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="Information about diagnoses relevant to the claim items.") - procedure_field: List[ExplanationOfBenefit_ProcedureModel] = Field(default_factory=list, alias="procedure", description="Procedures performed on the patient relevant to the billing items with the claim.") - precedence_field: positiveIntModel = Field(default=None, alias="precedence", description="This indicates the relative order of a series of EOBs related to different coverages for the same suite of services.") - insurance_field: List[ExplanationOfBenefit_InsuranceModel] = Field(default_factory=list, alias="insurance", description="Financial instruments for reimbursement for the health care products and services specified on the claim.") - accident_field: ExplanationOfBenefit_AccidentModel = Field(default=None, alias="accident", description="Details of a accident which resulted in injuries which required the products and services listed in the claim.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - item_field: List[ExplanationOfBenefit_ItemModel] = Field(default_factory=list, alias="item", description="A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details.") - addItem_field: List[ExplanationOfBenefit_AddItemModel] = Field(default_factory=list, alias="addItem", description="The first-tier service adjudications for payor added product or service lines.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results which are presented at the header level rather than at the line-item or add-item levels.") - total_field: List[ExplanationOfBenefit_TotalModel] = Field(default_factory=list, alias="total", description="Categorized monetary totals for the adjudication.") - payment_field: ExplanationOfBenefit_PaymentModel = Field(default=None, alias="payment", description="Payment details for the adjudication of the claim.") - formCode_field: CodeableConceptModel = Field(default=None, alias="formCode", description="A code for the form to be used for printing the content.") - form_field: AttachmentModel = Field(default=None, alias="form", description="The actual form, by reference or inclusion, for printing the content or an EOB.") - processNote_field: List[ExplanationOfBenefit_ProcessNoteModel] = Field(default_factory=list, alias="processNote", description="A note that describes or explains adjudication results in a human readable form.") - benefitPeriod_field: PeriodModel = Field(default=None, alias="benefitPeriod", description="The term of the benefits documented in this response.") - benefitBalance_field: List[ExplanationOfBenefit_BenefitBalanceModel] = Field(default_factory=list, alias="benefitBalance", description="Balance by Benefit Category.") - -class ExplanationOfBenefit_RelatedModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - claim_field: ReferenceModel = Field(default=None, alias="claim", description="Reference to a related claim.") - relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="A code to convey how the claims are related.") - reference_field: IdentifierModel = Field(default=None, alias="reference", description="An alternate organizational reference to the case or file to which this particular claim pertains.") - -class ExplanationOfBenefit_EventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded event such as when a service is expected or a card printed.") - whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="A date or period in the past or future indicating when the event occurred or is expectd to occur.") - -class ExplanationOfBenefit_PayeeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Party to be reimbursed: Subscriber, provider, other.") - party_field: ReferenceModel = Field(default=None, alias="party", description="Reference to the individual or organization to whom any payment will be made.") - -class ExplanationOfBenefit_CareTeamModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify care team entries.") - provider_field: ReferenceModel = Field(default=None, alias="provider", description="Member of the team who provided the product or service.") - responsible_field: booleanModel = Field(default=None, alias="responsible", description="The party who is billing and/or responsible for the claimed products or services.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team.") - specialty_field: CodeableConceptModel = Field(default=None, alias="specialty", description="The specialization of the practitioner or provider which is applicable for this service.") - -class ExplanationOfBenefit_SupportingInfoModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify supporting information entries.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="The general class of the information supplied: information; exception; accident, employment; onset, etc.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient for which care is sought.") - timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="The date when or period to which this information refers.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data.") - reason_field: CodingModel = Field(default=None, alias="reason", description="Provides the reason in the situation where a reason code is required in addition to the content.") - -class ExplanationOfBenefit_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify diagnosis entries.") - diagnosisCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="diagnosisCodeableConcept", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") - diagnosisReference_field: ReferenceModel = Field(default=None, alias="diagnosisReference", description="The nature of illness or problem in a coded form or as a reference to an external defined Condition.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") - onAdmission_field: CodeableConceptModel = Field(default=None, alias="onAdmission", description="Indication of whether the diagnosis was present on admission to a facility.") - -class ExplanationOfBenefit_ProcedureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify procedure entries.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="When the condition was observed or the relative ranking.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Date and optionally time the procedure was performed.") - procedureCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="procedureCodeableConcept", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") - procedureReference_field: ReferenceModel = Field(default=None, alias="procedureReference", description="The code or reference to a Procedure resource which identifies the clinical intervention performed.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - -class ExplanationOfBenefit_InsuranceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - focal_field: booleanModel = Field(default=None, alias="focal", description="A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true.") - coverage_field: ReferenceModel = Field(default=None, alias="coverage", description="Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system.") - preAuthRef_field: List[stringModel] = Field(default_factory=list, alias="preAuthRef", description="Reference numbers previously provided by the insurer to the provider to be quoted on subsequent claims containing services or products related to the prior authorization.") - -class ExplanationOfBenefit_AccidentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - date_field: dateModel = Field(default=None, alias="date", description="Date of an accident event related to the products and services contained in the claim.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers.") - locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="The physical location of the accident event.") - locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="The physical location of the accident event.") - -class ExplanationOfBenefit_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A number to uniquely identify item entries.") - careTeamSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="careTeamSequence", description="Care team members related to this service or product.") - diagnosisSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="diagnosisSequence", description="Diagnoses applicable for this service or product.") - procedureSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="procedureSequence", description="Procedures applicable for this service or product.") - informationSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="informationSequence", description="Exceptions, special conditions and supporting information applicable for this service or product.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") - locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") - locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") - locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item. Net = unit price * quantity * factor.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - bodySite_field: List[ExplanationOfBenefit_BodySiteModel] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") - encounter_field: List[ReferenceModel] = Field(default_factory=list, alias="encounter", description="Healthcare encounters related to this claim.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item.") - detail_field: List[ExplanationOfBenefit_DetailModel] = Field(default_factory=list, alias="detail", description="Second-tier of goods and services.") - -class ExplanationOfBenefit_BodySiteModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") - subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") - -class ExplanationOfBenefit_ReviewOutcomeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - decision_field: CodeableConceptModel = Field(default=None, alias="decision", description="The result of the claim, predetermination, or preauthorization adjudication.") - reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="The reasons for the result of the claim, predetermination, or preauthorization adjudication.") - preAuthRef_field: stringModel = Field(default=None, alias="preAuthRef", description="Reference from the Insurer which is used in later communications which refers to this adjudication.") - preAuthPeriod_field: PeriodModel = Field(default=None, alias="preAuthPeriod", description="The time frame during which this authorization is effective.") - -class ExplanationOfBenefit_AdjudicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in-aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="A code supporting the understanding of the adjudication result and explaining variance from expected amount.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary amount associated with the category.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="A non-monetary value associated with the category. Mutually exclusive to the amount element above.") - -class ExplanationOfBenefit_DetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the line item.detail. Net = unit price * quantity * factor.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - subDetail_field: List[ExplanationOfBenefit_SubDetailModel] = Field(default_factory=list, alias="subDetail", description="Third-tier of goods and services.") - -class ExplanationOfBenefit_SubDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the line item.detail.subDetail. Net = unit price * quantity * factor.") - udi_field: List[ReferenceModel] = Field(default_factory=list, alias="udi", description="Unique Device Identifiers associated with this line item.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - -class ExplanationOfBenefit_AddItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - itemSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="itemSequence", description="Claim items which this service line is intended to replace.") - detailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="detailSequence", description="The sequence number of the details within the claim item which this line is intended to replace.") - subDetailSequence_field: List[positiveIntModel] = Field(default_factory=list, alias="subDetailSequence", description="The sequence number of the sub-details woithin the details within the claim item which this line is intended to replace.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - provider_field: List[ReferenceModel] = Field(default_factory=list, alias="provider", description="The providers who are authorized for the services rendered to the patient.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Request or Referral for Goods or Service to be rendered.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - programCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="programCode", description="Identifies the program under which this may be recovered.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="The date or dates when the service or product was supplied, performed or completed.") - locationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="locationCodeableConcept", description="Where the product or service was provided.") - locationAddress_field: AddressModel = Field(default=None, alias="locationAddress", description="Where the product or service was provided.") - locationReference_field: ReferenceModel = Field(default=None, alias="locationReference", description="Where the product or service was provided.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem. Net = unit price * quantity * factor.") - bodySite_field: List[ExplanationOfBenefit_BodySite1Model] = Field(default_factory=list, alias="bodySite", description="Physical location where the service is performed or applies.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - detail_field: List[ExplanationOfBenefit_Detail1Model] = Field(default_factory=list, alias="detail", description="The second-tier service adjudications for payor added services.") - -class ExplanationOfBenefit_BodySite1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - site_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="site", description="Physical service site on the patient (limb, tooth, etc.).") - subSite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subSite", description="A region or surface of the bodySite, e.g. limb region or tooth surface(s).") - -class ExplanationOfBenefit_Detail1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the group (if a grouper) or the addItem.detail. Net = unit price * quantity * factor.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - subDetail_field: List[ExplanationOfBenefit_SubDetail1Model] = Field(default_factory=list, alias="subDetail", description="The third-tier service adjudications for payor added services.") - -class ExplanationOfBenefit_SubDetail1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - traceNumber_field: List[IdentifierModel] = Field(default_factory=list, alias="traceNumber", description="Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners.") - revenue_field: CodeableConceptModel = Field(default=None, alias="revenue", description="The type of revenue or cost center providing the product and/or service.") - productOrService_field: CodeableConceptModel = Field(default=None, alias="productOrService", description="When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used.") - productOrServiceEnd_field: CodeableConceptModel = Field(default=None, alias="productOrServiceEnd", description="This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims.") - modifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modifier", description="Item typification or modifiers codes to convey additional context for the product or service.") - patientPaid_field: MoneyModel = Field(default=None, alias="patientPaid", description="The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The number of repetitions of a service or product.") - unitPrice_field: MoneyModel = Field(default=None, alias="unitPrice", description="If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group.") - factor_field: decimalModel = Field(default=None, alias="factor", description="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.") - tax_field: MoneyModel = Field(default=None, alias="tax", description="The total of taxes applicable for this product or service.") - net_field: MoneyModel = Field(default=None, alias="net", description="The total amount claimed for the addItem.detail.subDetail. Net = unit price * quantity * factor.") - noteNumber_field: List[positiveIntModel] = Field(default_factory=list, alias="noteNumber", description="The numbers associated with notes below which apply to the adjudication of this item.") - reviewOutcome_field: ExplanationOfBenefit_ReviewOutcomeModel = Field(default=None, alias="reviewOutcome", description="The high-level results of the adjudication if adjudication has been performed.") - adjudication_field: List[ExplanationOfBenefit_AdjudicationModel] = Field(default_factory=list, alias="adjudication", description="The adjudication results.") - -class ExplanationOfBenefit_TotalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Monetary total amount associated with the category.") - -class ExplanationOfBenefit_PaymentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Whether this represents partial or complete payment of the benefits payable.") - adjustment_field: MoneyModel = Field(default=None, alias="adjustment", description="Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication.") - adjustmentReason_field: CodeableConceptModel = Field(default=None, alias="adjustmentReason", description="Reason for the payment adjustment.") - date_field: dateModel = Field(default=None, alias="date", description="Estimated date the payment will be issued or the actual issue date of payment.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Benefits payable less any payment adjustment.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Issuer's unique identifier for the payment instrument.") - -class ExplanationOfBenefit_ProcessNoteModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - number_field: positiveIntModel = Field(default=None, alias="number", description="A number to uniquely identify a note entry.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The business purpose of the note text.") - text_field: stringModel = Field(default=None, alias="text", description="The explanation or description associated with the processing.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="A code to define the language used in the text of the note.") - -class ExplanationOfBenefit_BenefitBalanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Code to identify the general type of benefits under which products and services are provided.") - excluded_field: booleanModel = Field(default=None, alias="excluded", description="True if the indicated class of service is excluded from the plan, missing or False indicates the product or service is included in the coverage.") - name_field: stringModel = Field(default=None, alias="name", description="A short name or tag for the benefit.") - description_field: stringModel = Field(default=None, alias="description", description="A richer description of the benefit or services covered.") - network_field: CodeableConceptModel = Field(default=None, alias="network", description="Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers.") - unit_field: CodeableConceptModel = Field(default=None, alias="unit", description="Indicates if the benefits apply to an individual or to the family.") - term_field: CodeableConceptModel = Field(default=None, alias="term", description="The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'.") - financial_field: List[ExplanationOfBenefit_FinancialModel] = Field(default_factory=list, alias="financial", description="Benefits Used to date.") - -class ExplanationOfBenefit_FinancialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Classification of benefit being provided.") - allowedMoney_field: MoneyModel = Field(default=None, alias="allowedMoney", description="The quantity of the benefit which is permitted under the coverage.") - usedMoney_field: MoneyModel = Field(default=None, alias="usedMoney", description="The quantity of the benefit which have been consumed to date.") - -class FamilyMemberHistoryModel(BaseModel): - resourceType_field: str = "FamilyMemberHistory" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this FamilyMemberHistory.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this FamilyMemberHistory.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the status of the record of the family history of a specific family member.") - dataAbsentReason_field: CodeableConceptModel = Field(default=None, alias="dataAbsentReason", description="Describes why the family member's history is not available.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The person who this history concerns.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and possibly time) when the family member history was recorded or last updated.") - participant_field: List[FamilyMemberHistory_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what participated in the activities related to the family member history and how they were involved.") - name_field: stringModel = Field(default=None, alias="name", description="This will either be a name or a description; e.g. Aunt Susan, my cousin with the red hair.") - relationship_field: CodeableConceptModel = Field(default=None, alias="relationship", description="The type of relationship this person has to the patient (father, mother, brother etc.).") - sex_field: CodeableConceptModel = Field(default=None, alias="sex", description="The birth sex of the family member.") - bornPeriod_field: PeriodModel = Field(default=None, alias="bornPeriod", description="The actual or approximate date of birth of the relative.") - ageAge_field: AgeModel = Field(default=None, alias="ageAge", description="The age of the relative at the time the family member history is recorded.") - ageRange_field: RangeModel = Field(default=None, alias="ageRange", description="The age of the relative at the time the family member history is recorded.") - estimatedAge_field: booleanModel = Field(default=None, alias="estimatedAge", description="If true, indicates that the age value specified is an estimated value.") - deceasedAge_field: AgeModel = Field(default=None, alias="deceasedAge", description="Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.") - deceasedRange_field: RangeModel = Field(default=None, alias="deceasedRange", description="Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the family member history occurred in coded or textual form, or Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.") - condition_field: List[FamilyMemberHistory_ConditionModel] = Field(default_factory=list, alias="condition", description="The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.") - procedure_field: List[FamilyMemberHistory_ProcedureModel] = Field(default_factory=list, alias="procedure", description="The significant Procedures (or procedure) that the family member had. This is a repeating section to allow a system to represent more than one procedure per resource, though there is nothing stopping multiple resources - one per procedure.") - -class FamilyMemberHistory_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the actor in the activities related to the family member history.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what participated in the activities related to the family member history.") - -class FamilyMemberHistory_ConditionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.") - outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="Indicates what happened following the condition. If the condition resulted in death, deceased date is captured on the relation.") - contributedToDeath_field: booleanModel = Field(default=None, alias="contributedToDeath", description="This condition contributed to the cause of death of the related person. If contributedToDeath is not populated, then it is unknown.") - onsetAge_field: AgeModel = Field(default=None, alias="onsetAge", description="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.") - onsetRange_field: RangeModel = Field(default=None, alias="onsetRange", description="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.") - onsetPeriod_field: PeriodModel = Field(default=None, alias="onsetPeriod", description="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="An area where general notes can be placed about this specific condition.") - -class FamilyMemberHistory_ProcedureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The actual procedure specified. Could be a coded procedure or a less specific string depending on how much is known about the procedure and the capabilities of the creating system.") - outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="Indicates what happened following the procedure. If the procedure resulted in death, deceased date is captured on the relation.") - contributedToDeath_field: booleanModel = Field(default=None, alias="contributedToDeath", description="This procedure contributed to the cause of death of the related person. If contributedToDeath is not populated, then it is unknown.") - performedAge_field: AgeModel = Field(default=None, alias="performedAge", description="Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - performedRange_field: RangeModel = Field(default=None, alias="performedRange", description="Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - performedPeriod_field: PeriodModel = Field(default=None, alias="performedPeriod", description="Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="An area where general notes can be placed about this specific procedure.") - -class FlagModel(BaseModel): - resourceType_field: str = "Flag" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - status_field: codeModel = Field(default=None, alias="status", description="Supports basic workflow.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The coded value or textual component of the flag to display to the user.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient, related person, location, group, organization, or practitioner etc. this is about record this flag is associated with.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This alert is only relevant during the encounter.") - author_field: ReferenceModel = Field(default=None, alias="author", description="The person, organization or device that created the flag.") - -class FormularyItemModel(BaseModel): - resourceType_field: str = "FormularyItem" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this formulary item.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code (or set of codes) that specify the product or service that is identified by this formulary item.") - status_field: codeModel = Field(default=None, alias="status", description="The validity about the information of the formulary item and not of the underlying product or service itself.") - -class GenomicStudyModel(BaseModel): - resourceType_field: str = "GenomicStudy" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers for this genomic study.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the genomic study.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The type of the study, e.g., Familial variant segregation, Functional variation detection, or Gene expression profiling.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The primary subject of the genomic study.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event with which this genomics study is associated.") - startDate_field: dateTimeModel = Field(default=None, alias="startDate", description="When the genomic study was started.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Event resources that the genomic study is based on.") - referrer_field: ReferenceModel = Field(default=None, alias="referrer", description="Healthcare professional who requested or referred the genomic study.") - interpreter_field: List[ReferenceModel] = Field(default_factory=list, alias="interpreter", description="Healthcare professionals who interpreted the genomic study.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Why the genomic study was performed.") - instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The defined protocol that describes the study.") - instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol that describes the study.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments related to the genomic study.") - description_field: markdownModel = Field(default=None, alias="description", description="Description of the genomic study.") - analysis_field: List[GenomicStudy_AnalysisModel] = Field(default_factory=list, alias="analysis", description="The details about a specific analysis that was performed in this GenomicStudy.") - -class GenomicStudy_AnalysisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers for the analysis event.") - methodType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="methodType", description="Type of the methods used in the analysis, e.g., Fluorescence in situ hybridization (FISH), Karyotyping, or Microsatellite instability testing (MSI).") - changeType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="changeType", description="Type of the genomic changes studied in the analysis, e.g., DNA, RNA, or amino acid change.") - genomeBuild_field: CodeableConceptModel = Field(default=None, alias="genomeBuild", description="The reference genome build that is used in this analysis.") - instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The defined protocol that describes the analysis.") - instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol that describes the analysis.") - title_field: stringModel = Field(default=None, alias="title", description="Name of the analysis event (human friendly).") - focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The focus of a genomic analysis when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, child, or sibling. For example, in trio testing, the GenomicStudy.subject would be the child (proband) and the GenomicStudy.analysis.focus of a specific analysis would be the parent.") - specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="The specimen used in the analysis event.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date of the analysis event.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any notes capture with the analysis event.") - protocolPerformed_field: ReferenceModel = Field(default=None, alias="protocolPerformed", description="The protocol that was performed for the analysis event.") - regionsStudied_field: List[ReferenceModel] = Field(default_factory=list, alias="regionsStudied", description="The genomic regions to be studied in the analysis (BED file).") - regionsCalled_field: List[ReferenceModel] = Field(default_factory=list, alias="regionsCalled", description="Genomic regions actually called in the analysis event (BED file).") - input_field: List[GenomicStudy_InputModel] = Field(default_factory=list, alias="input", description="Inputs for the analysis event.") - output_field: List[GenomicStudy_OutputModel] = Field(default_factory=list, alias="output", description="Outputs for the analysis event.") - performer_field: List[GenomicStudy_PerformerModel] = Field(default_factory=list, alias="performer", description="Performer for the analysis event.") - device_field: List[GenomicStudy_DeviceModel] = Field(default_factory=list, alias="device", description="Devices used for the analysis (e.g., instruments, software), with settings and parameters.") - -class GenomicStudy_InputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - file_field: ReferenceModel = Field(default=None, alias="file", description="File containing input data.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of input data, e.g., BAM, CRAM, or FASTA.") - generatedByIdentifier_field: IdentifierModel = Field(default=None, alias="generatedByIdentifier", description="The analysis event or other GenomicStudy that generated this input file.") - generatedByReference_field: ReferenceModel = Field(default=None, alias="generatedByReference", description="The analysis event or other GenomicStudy that generated this input file.") - -class GenomicStudy_OutputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - file_field: ReferenceModel = Field(default=None, alias="file", description="File containing output data.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of output data, e.g., VCF, MAF, or BAM.") - -class GenomicStudy_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The organization, healthcare professional, or others who participated in performing this analysis.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Role of the actor for this analysis.") - -class GenomicStudy_DeviceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - device_field: ReferenceModel = Field(default=None, alias="device", description="Device used for the analysis.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Specific function for the device used for the analysis.") - -class GoalModel(BaseModel): - resourceType_field: str = "Goal" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.") - lifecycleStatus_field: codeModel = Field(default=None, alias="lifecycleStatus", description="The state of the goal throughout its lifecycle.") - achievementStatus_field: CodeableConceptModel = Field(default=None, alias="achievementStatus", description="Describes the progression, or lack thereof, towards the goal against the target.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Indicates a category the goal falls within.") - continuous_field: booleanModel = Field(default=None, alias="continuous", description="After meeting the goal, ongoing activity is needed to sustain the goal objective.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.") - description_field: CodeableConceptModel = Field(default=None, alias="description", description="Human-readable and/or coded description of a specific desired objective of care, such as control blood pressure or negotiate an obstacle course or dance with child at wedding.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Identifies the patient, group or organization for whom the goal is being established.") - startCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="startCodeableConcept", description="The date or event after which the goal should begin being pursued.") - target_field: List[Goal_TargetModel] = Field(default_factory=list, alias="target", description="Indicates what should be done by when.") - statusDate_field: dateModel = Field(default=None, alias="statusDate", description="Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.") - statusReason_field: stringModel = Field(default=None, alias="statusReason", description="Captures the reason for the current status.") - source_field: ReferenceModel = Field(default=None, alias="source", description="Indicates whose goal this is - patient goal, practitioner goal, etc.") - addresses_field: List[ReferenceModel] = Field(default_factory=list, alias="addresses", description="The identified conditions and other health record elements that are intended to be addressed by the goal.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any comments related to the goal.") - outcome_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="outcome", description="Identifies the change (or lack of change) at the point when the status of the goal is assessed.") - -class Goal_TargetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - measure_field: CodeableConceptModel = Field(default=None, alias="measure", description="The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.") - detailQuantity_field: QuantityModel = Field(default=None, alias="detailQuantity", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") - detailRange_field: RangeModel = Field(default=None, alias="detailRange", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") - detailCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="detailCodeableConcept", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") - detailRatio_field: RatioModel = Field(default=None, alias="detailRatio", description="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.") - dueDuration_field: DurationModel = Field(default=None, alias="dueDuration", description="Indicates either the date or the duration after start by which the goal should be met.") - -class GraphDefinitionModel(BaseModel): - resourceType_field: str = "GraphDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this graph definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this graph definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the graph definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this GraphDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the graph definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the graph definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the graph definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the capability statement.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this graph definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this graph definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the graph definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the graph definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the graph definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the graph definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate graph definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the graph definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this graph definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the graph definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the graph definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - start_field: idModel = Field(default=None, alias="start", description="The Node at which instances of this graph start. If there is no nominated start, the graph can start at any of the nodes.") - node_field: List[GraphDefinition_NodeModel] = Field(default_factory=list, alias="node", description="Potential target for the link.") - link_field: List[GraphDefinition_LinkModel] = Field(default_factory=list, alias="link", description="Links this graph makes rules about.") - -class GraphDefinition_NodeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - nodeId_field: idModel = Field(default=None, alias="nodeId", description="Internal ID of node - target for link references.") - description_field: stringModel = Field(default=None, alias="description", description="Information about why this node is of interest in this graph definition.") - type_field: codeModel = Field(default=None, alias="type", description="Type of resource this link refers to.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="Profile for the target resource.") - -class GraphDefinition_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: stringModel = Field(default=None, alias="description", description="Information about why this link is of interest in this graph definition.") - min_field: integerModel = Field(default=None, alias="min", description="Minimum occurrences for this link.") - max_field: stringModel = Field(default=None, alias="max", description="Maximum occurrences for this link.") - sourceId_field: idModel = Field(default=None, alias="sourceId", description="The source node for this link.") - path_field: stringModel = Field(default=None, alias="path", description="A FHIRPath expression that identifies one of FHIR References to other resources.") - sliceName_field: stringModel = Field(default=None, alias="sliceName", description="Which slice (if profiled).") - targetId_field: idModel = Field(default=None, alias="targetId", description="The target node for this link.") - params_field: stringModel = Field(default=None, alias="params", description="A set of parameters to look up.") - compartment_field: List[GraphDefinition_CompartmentModel] = Field(default_factory=list, alias="compartment", description="Compartment Consistency Rules.") - -class GraphDefinition_CompartmentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - use_field: codeModel = Field(default=None, alias="use", description="Defines how the compartment rule is used - whether it it is used to test whether resources are subject to the rule, or whether it is a rule that must be followed.") - rule_field: codeModel = Field(default=None, alias="rule", description="identical | matching | different | no-rule | custom.") - code_field: codeModel = Field(default=None, alias="code", description="Identifies the compartment.") - expression_field: stringModel = Field(default=None, alias="expression", description="Custom rule, as a FHIRPath expression.") - description_field: stringModel = Field(default=None, alias="description", description="Documentation for FHIRPath expression.") - -class GroupModel(BaseModel): - resourceType_field: str = "Group" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this participant by one of the applications involved. These identifiers remain constant as the resource is updated and propagates from server to server.") - active_field: booleanModel = Field(default=None, alias="active", description="Indicates whether the record for the group is available for use or is merely being retained for historical purposes.") - type_field: codeModel = Field(default=None, alias="type", description="Identifies the broad classification of the kind of resources the group includes.") - membership_field: codeModel = Field(default=None, alias="membership", description="Basis for membership in the Group:") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Provides a specific type of resource the group includes; e.g. cow, syringe, etc.") - name_field: stringModel = Field(default=None, alias="name", description="A label assigned to the group for human identification and communication.") - description_field: markdownModel = Field(default=None, alias="description", description="Explanation of what the group represents and how it is intended to be used.") - quantity_field: unsignedIntModel = Field(default=None, alias="quantity", description="A count of the number of resource instances that are part of the group.") - managingEntity_field: ReferenceModel = Field(default=None, alias="managingEntity", description="Entity responsible for defining and maintaining Group characteristics and/or registered members.") - characteristic_field: List[Group_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Identifies traits whose presence r absence is shared by members of the group.") - member_field: List[Group_MemberModel] = Field(default_factory=list, alias="member", description="Identifies the resource instances that are members of the group.") - -class Group_CharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies the kind of trait being asserted.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the trait that holds (or does not hold - see 'exclude') for members of the group.") - exclude_field: booleanModel = Field(default=None, alias="exclude", description="If true, indicates the characteristic is one that is NOT held by members of the group.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.") - -class Group_MemberModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - entity_field: ReferenceModel = Field(default=None, alias="entity", description="A reference to the entity that is a member of the group. Must be consistent with Group.type. If the entity is another group, then the type must be the same.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period that the member was in the group, if known.") - inactive_field: booleanModel = Field(default=None, alias="inactive", description="A flag to indicate that the member is no longer in the group, but previously may have been a member.") - -class GuidanceResponseModel(BaseModel): - resourceType_field: str = "GuidanceResponse" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - requestIdentifier_field: IdentifierModel = Field(default=None, alias="requestIdentifier", description="The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Allows a service to provide unique, business identifiers for the response.") - moduleCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="moduleCodeableConcept", description="An identifier, CodeableConcept or canonical reference to the guidance that was requested.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient for which the request was processed.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter during which this response was created or to which the creation of this record is tightly associated.") - occurrenceDateTime_field: dateTimeModel = Field(default=None, alias="occurrenceDateTime", description="Indicates when the guidance response was processed.") - performer_field: ReferenceModel = Field(default=None, alias="performer", description="Provides a reference to the device that performed the guidance.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides a mechanism to communicate additional information about the response.") - evaluationMessage_field: ReferenceModel = Field(default=None, alias="evaluationMessage", description="Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.") - outputParameters_field: ReferenceModel = Field(default=None, alias="outputParameters", description="The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.") - result_field: List[ReferenceModel] = Field(default_factory=list, alias="result", description="The actions, if any, produced by the evaluation of the artifact.") - dataRequirement_field: List[DataRequirementModel] = Field(default_factory=list, alias="dataRequirement", description="If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data.") - -class HealthcareServiceModel(BaseModel): - resourceType_field: str = "HealthcareService" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="External identifiers for this item.") - active_field: booleanModel = Field(default=None, alias="active", description="This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.") - providedBy_field: ReferenceModel = Field(default=None, alias="providedBy", description="The organization that provides this healthcare service.") - offeredIn_field: List[ReferenceModel] = Field(default_factory=list, alias="offeredIn", description="When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Identifies the broad category of service being performed or delivered.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The specific type of service that may be delivered or performed.") - specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="Collection of specialties handled by the Healthcare service. This is more of a medical term.") - location_field: List[ReferenceModel] = Field(default_factory=list, alias="location", description="The location(s) where this healthcare service may be provided.") - name_field: stringModel = Field(default=None, alias="name", description="Further description of the service as it would be presented to a consumer while searching.") - comment_field: markdownModel = Field(default=None, alias="comment", description="Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.") - extraDetails_field: markdownModel = Field(default=None, alias="extraDetails", description="Extra details about the service that can't be placed in the other fields.") - photo_field: AttachmentModel = Field(default=None, alias="photo", description="If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.") - contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") - coverageArea_field: List[ReferenceModel] = Field(default_factory=list, alias="coverageArea", description="The location(s) that this service is available to (not where the service is provided).") - serviceProvisionCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceProvisionCode", description="The code(s) that detail the conditions under which the healthcare service is available/offered.") - eligibility_field: List[HealthcareService_EligibilityModel] = Field(default_factory=list, alias="eligibility", description="Does this service have specific eligibility requirements that need to be met in order to use the service?") - program_field: List[CodeableConceptModel] = Field(default_factory=list, alias="program", description="Programs that this service is applicable to.") - characteristic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="characteristic", description="Collection of characteristics (attributes).") - communication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="communication", description="Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used.") - referralMethod_field: List[CodeableConceptModel] = Field(default_factory=list, alias="referralMethod", description="Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.") - appointmentRequired_field: booleanModel = Field(default=None, alias="appointmentRequired", description="Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.") - availability_field: List[AvailabilityModel] = Field(default_factory=list, alias="availability", description="A collection of times that the healthcare service is available.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.") - -class HealthcareService_EligibilityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded value for the eligibility.") - comment_field: markdownModel = Field(default=None, alias="comment", description="Describes the eligibility conditions for the service.") - -class ImagingSelectionModel(BaseModel): - resourceType_field: str = "ImagingSelection" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this imaging selection.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the ImagingSelection resource. This is not the status of any ImagingStudy, ServiceRequest, or Task resources associated with the ImagingSelection.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient, or group of patients, location, device, organization, procedure or practitioner this imaging selection is about and into whose or what record the imaging selection is placed.") - issued_field: instantModel = Field(default=None, alias="issued", description="The date and time this imaging selection was created.") - performer_field: List[ImagingSelection_PerformerModel] = Field(default_factory=list, alias="performer", description="Selector of the instances – human or machine.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A list of the diagnostic requests that resulted in this imaging selection being performed.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Classifies the imaging selection.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Reason for referencing the selected content.") - studyUid_field: idModel = Field(default=None, alias="studyUid", description="The Study Instance UID for the DICOM Study from which the images were selected.") - derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="The imaging study from which the imaging selection is made.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The network service providing retrieval access to the selected images, frames, etc. See implementation notes for information about using DICOM endpoints.") - seriesUid_field: idModel = Field(default=None, alias="seriesUid", description="The Series Instance UID for the DICOM Series from which the images were selected.") - seriesNumber_field: unsignedIntModel = Field(default=None, alias="seriesNumber", description="The Series Number for the DICOM Series from which the images were selected.") - frameOfReferenceUid_field: idModel = Field(default=None, alias="frameOfReferenceUid", description="The Frame of Reference UID identifying the coordinate system that conveys spatial and/or temporal information for the selected images or frames.") - bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings.") - focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.") - instance_field: List[ImagingSelection_InstanceModel] = Field(default_factory=list, alias="instance", description="Each imaging selection includes one or more selected DICOM SOP instances.") - -class ImagingSelection_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Author – human or machine.") - -class ImagingSelection_InstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - uid_field: idModel = Field(default=None, alias="uid", description="The SOP Instance UID for the selected DICOM instance.") - number_field: unsignedIntModel = Field(default=None, alias="number", description="The Instance Number for the selected DICOM instance.") - sopClass_field: CodingModel = Field(default=None, alias="sopClass", description="The SOP Class UID for the selected DICOM instance.") - subset_field: List[stringModel] = Field(default_factory=list, alias="subset", description="Selected subset of the SOP Instance. The content and format of the subset item is determined by the SOP Class of the selected instance.") - imageRegion2D_field: List[ImagingSelection_ImageRegion2DModel] = Field(default_factory=list, alias="imageRegion2D", description="Each imaging selection instance or frame list might includes an image region, specified by a region type and a set of 2D coordinates.") - imageRegion3D_field: List[ImagingSelection_ImageRegion3DModel] = Field(default_factory=list, alias="imageRegion3D", description="Each imaging selection might includes a 3D image region, specified by a region type and a set of 3D coordinates.") - -class ImagingSelection_ImageRegion2DModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - regionType_field: codeModel = Field(default=None, alias="regionType", description="Specifies the type of image region.") - coordinate_field: List[decimalModel] = Field(default_factory=list, alias="coordinate", description="The coordinates describing the image region. Encoded as a set of (column, row) pairs that denote positions in the selected image / frames specified with sub-pixel resolution.") - -class ImagingSelection_ImageRegion3DModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - regionType_field: codeModel = Field(default=None, alias="regionType", description="Specifies the type of image region.") - coordinate_field: List[decimalModel] = Field(default_factory=list, alias="coordinate", description="The coordinates describing the image region. Encoded as an ordered set of (x,y,z) triplets (in mm and may be negative) that define a region of interest in the patient-relative Reference Coordinate System defined by ImagingSelection.frameOfReferenceUid element.") - -class ImagingStudyModel(BaseModel): - resourceType_field: str = "ImagingStudy" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers for the ImagingStudy such as DICOM Study Instance UID.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the ImagingStudy resource. This is not the status of any ServiceRequest or Task resources associated with the ImagingStudy.") - modality_field: List[CodeableConceptModel] = Field(default_factory=list, alias="modality", description="A list of all the distinct values of series.modality. This may include both acquisition and non-acquisition modalities.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject, typically a patient, of the imaging study.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this ImagingStudy is made.") - started_field: dateTimeModel = Field(default=None, alias="started", description="Date and time the study started.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A list of the diagnostic requests that resulted in this imaging study being performed.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular ImagingStudy is a component or step. For example, an ImagingStudy as part of a procedure.") - referrer_field: ReferenceModel = Field(default=None, alias="referrer", description="The requesting/referring physician.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.connectionType.") - numberOfSeries_field: unsignedIntModel = Field(default=None, alias="numberOfSeries", description="Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present.") - numberOfInstances_field: unsignedIntModel = Field(default=None, alias="numberOfInstances", description="Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.") - procedure_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="procedure", description="This field corresponds to the DICOM Procedure Code Sequence (0008,1032). This is different from the FHIR Procedure resource that may include the ImagingStudy.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The principal physical location where the ImagingStudy was performed.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Description of clinical condition indicating why the ImagingStudy was requested, and/or Indicates another resource whose existence justifies this Study.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Per the recommended DICOM mapping, this element is derived from the Study Description attribute (0008,1030). Observations or findings about the imaging study should be recorded in another resource, e.g. Observation, and not in this element.") - description_field: stringModel = Field(default=None, alias="description", description="The Imaging Manager description of the study. Institution-generated description or classification of the Study (component) performed.") - series_field: List[ImagingStudy_SeriesModel] = Field(default_factory=list, alias="series", description="Each study has one or more series of images or other content.") - -class ImagingStudy_SeriesModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - uid_field: idModel = Field(default=None, alias="uid", description="The DICOM Series Instance UID for the series.") - number_field: unsignedIntModel = Field(default=None, alias="number", description="The numeric identifier of this series in the study.") - modality_field: CodeableConceptModel = Field(default=None, alias="modality", description="The distinct modality for this series. This may include both acquisition and non-acquisition modalities.") - description_field: stringModel = Field(default=None, alias="description", description="A description of the series.") - numberOfInstances_field: unsignedIntModel = Field(default=None, alias="numberOfInstances", description="Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.connectionType.") - bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality.") - laterality_field: CodeableConceptModel = Field(default=None, alias="laterality", description="The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite.") - specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="The specimen imaged, e.g., for whole slide imaging of a biopsy.") - started_field: dateTimeModel = Field(default=None, alias="started", description="The date and time the series was started.") - performer_field: List[ImagingStudy_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the series and how they were involved.") - instance_field: List[ImagingStudy_InstanceModel] = Field(default_factory=list, alias="instance", description="A single SOP instance within the series, e.g. an image, or presentation state.") - -class ImagingStudy_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer in the series.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what performed the series.") - -class ImagingStudy_InstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - uid_field: idModel = Field(default=None, alias="uid", description="The DICOM SOP Instance UID for this image or other DICOM content.") - sopClass_field: CodingModel = Field(default=None, alias="sopClass", description="DICOM instance type.") - number_field: unsignedIntModel = Field(default=None, alias="number", description="The number of instance in the series.") - title_field: stringModel = Field(default=None, alias="title", description="The description of the instance.") - -class ImmunizationModel(BaseModel): - resourceType_field: str = "Immunization" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this immunization record.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, order or recommendation fulfilled in whole or in part by this immunization.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates the current status of the immunization event.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Indicates the reason the immunization event was not performed.") - vaccineCode_field: CodeableConceptModel = Field(default=None, alias="vaccineCode", description="Vaccine that was administered or was to be administered.") - administeredProduct_field: CodeableReferenceModel = Field(default=None, alias="administeredProduct", description="An indication of which product was administered to the patient. This is typically a more detailed representation of the concept conveyed by the vaccineCode data element. If a Medication resource is referenced, it may be to a stand-alone resource or a contained resource within the Immunization resource.") - manufacturer_field: CodeableReferenceModel = Field(default=None, alias="manufacturer", description="Name of vaccine manufacturer.") - lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="Lot number of the vaccine product.") - expirationDate_field: dateModel = Field(default=None, alias="expirationDate", description="Date vaccine batch expires.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient who either received or did not receive the immunization.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The visit or admission or other contact between patient and health care provider the immunization was performed as part of.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information that is relevant to the immunization (e.g. for a vaccine recipient who is pregnant, the gestational age of the fetus). The reason why a vaccine was given (e.g. occupation, underlying medical condition) should be conveyed in Immunization.reason, not as supporting information. The reason why a vaccine was not given (e.g. contraindication) should be conveyed in Immunization.statusReason, not as supporting information.") - primarySource_field: booleanModel = Field(default=None, alias="primarySource", description="Indicates whether the data contained in the resource was captured by the individual/organization which was responsible for the administration of the vaccine rather than as 'secondary reported' data documented by a third party. A value of 'true' means this data originated with the individual/organization which was responsible for the administration of the vaccine.") - informationSource_field: CodeableReferenceModel = Field(default=None, alias="informationSource", description="Typically the source of the data when the report of the immunization event is not based on information from the person who administered the vaccine.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The service delivery location where the vaccine administration occurred.") - site_field: CodeableConceptModel = Field(default=None, alias="site", description="Body site where vaccine was administered.") - route_field: CodeableConceptModel = Field(default=None, alias="route", description="The path by which the vaccine product is taken into the body.") - doseQuantity_field: QuantityModel = Field(default=None, alias="doseQuantity", description="The quantity of vaccine product that was administered.") - performer_field: List[Immunization_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who performed the immunization event.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the immunization that is not conveyed by the other attributes.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes why the immunization occurred in coded or textual form, or Indicates another resource (Condition, Observation or DiagnosticReport) whose existence justifies this immunization.") - isSubpotent_field: booleanModel = Field(default=None, alias="isSubpotent", description="Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent.") - subpotentReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subpotentReason", description="Reason why a dose is considered to be subpotent.") - programEligibility_field: List[Immunization_ProgramEligibilityModel] = Field(default_factory=list, alias="programEligibility", description="Indicates a patient's eligibility for a funding program.") - fundingSource_field: CodeableConceptModel = Field(default=None, alias="fundingSource", description="Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered).") - reaction_field: List[Immunization_ReactionModel] = Field(default_factory=list, alias="reaction", description="Categorical data indicating that an adverse event is associated in time to an immunization.") - protocolApplied_field: List[Immunization_ProtocolAppliedModel] = Field(default_factory=list, alias="protocolApplied", description="The protocol (set of recommendations) being followed by the provider who administered the dose.") - -class Immunization_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Describes the type of performance (e.g. ordering provider, administering provider, etc.).") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The practitioner or organization who performed the action.") - -class Immunization_ProgramEligibilityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - program_field: CodeableConceptModel = Field(default=None, alias="program", description="Indicates which program the patient had their eligility evaluated for.") - programStatus_field: CodeableConceptModel = Field(default=None, alias="programStatus", description="Indicates the patient's eligility status for for a specific payment program.") - -class Immunization_ReactionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Date of reaction to the immunization.") - manifestation_field: CodeableReferenceModel = Field(default=None, alias="manifestation", description="Details of the reaction.") - reported_field: booleanModel = Field(default=None, alias="reported", description="Self-reported indicator.") - -class Immunization_ProtocolAppliedModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - series_field: stringModel = Field(default=None, alias="series", description="One possible path to achieve presumed immunity against a disease - within the context of an authority.") - authority_field: ReferenceModel = Field(default=None, alias="authority", description="Indicates the authority who published the protocol (e.g. ACIP) that is being followed.") - targetDisease_field: List[CodeableConceptModel] = Field(default_factory=list, alias="targetDisease", description="The vaccine preventable disease the dose is being administered against.") - doseNumber_field: stringModel = Field(default=None, alias="doseNumber", description="Nominal position in a series as intended by the practitioner administering the dose.") - seriesDoses_field: stringModel = Field(default=None, alias="seriesDoses", description="The recommended number of doses to achieve immunity as intended by the practitioner administering the dose.") - -class ImmunizationEvaluationModel(BaseModel): - resourceType_field: str = "ImmunizationEvaluation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this immunization evaluation record.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates the current status of the evaluation of the vaccination administration event.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The individual for whom the evaluation is being done.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date the evaluation of the vaccine administration event was performed.") - authority_field: ReferenceModel = Field(default=None, alias="authority", description="Indicates the authority who published the protocol (e.g. ACIP).") - targetDisease_field: CodeableConceptModel = Field(default=None, alias="targetDisease", description="The vaccine preventable disease the dose is being evaluated against.") - immunizationEvent_field: ReferenceModel = Field(default=None, alias="immunizationEvent", description="The vaccine administration event being evaluated.") - doseStatus_field: CodeableConceptModel = Field(default=None, alias="doseStatus", description="Indicates if the dose is valid or not valid with respect to the published recommendations.") - doseStatusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="doseStatusReason", description="Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations.") - description_field: markdownModel = Field(default=None, alias="description", description="Additional information about the evaluation.") - series_field: stringModel = Field(default=None, alias="series", description="One possible path to achieve presumed immunity against a disease - within the context of an authority.") - doseNumber_field: stringModel = Field(default=None, alias="doseNumber", description="Nominal position in a series as determined by the outcome of the evaluation process.") - seriesDoses_field: stringModel = Field(default=None, alias="seriesDoses", description="The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.") - -class ImmunizationRecommendationModel(BaseModel): - resourceType_field: str = "ImmunizationRecommendation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this particular recommendation record.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient the recommendation(s) are for.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date the immunization recommendation(s) were created.") - authority_field: ReferenceModel = Field(default=None, alias="authority", description="Indicates the authority who published the protocol (e.g. ACIP).") - recommendation_field: List[ImmunizationRecommendation_RecommendationModel] = Field(default_factory=list, alias="recommendation", description="Vaccine administration recommendations.") - -class ImmunizationRecommendation_RecommendationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - vaccineCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="vaccineCode", description="Vaccine(s) or vaccine group that pertain to the recommendation.") - targetDisease_field: List[CodeableConceptModel] = Field(default_factory=list, alias="targetDisease", description="The targeted disease for the recommendation.") - contraindicatedVaccineCode_field: List[CodeableConceptModel] = Field(default_factory=list, alias="contraindicatedVaccineCode", description="Vaccine(s) which should not be used to fulfill the recommendation.") - forecastStatus_field: CodeableConceptModel = Field(default=None, alias="forecastStatus", description="Indicates the patient status with respect to the path to immunity for the target disease.") - forecastReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="forecastReason", description="The reason for the assigned forecast status.") - dateCriterion_field: List[ImmunizationRecommendation_DateCriterionModel] = Field(default_factory=list, alias="dateCriterion", description="Vaccine date recommendations. For example, earliest date to administer, latest date to administer, etc.") - description_field: markdownModel = Field(default=None, alias="description", description="Contains the description about the protocol under which the vaccine was administered.") - series_field: stringModel = Field(default=None, alias="series", description="One possible path to achieve presumed immunity against a disease - within the context of an authority.") - doseNumber_field: stringModel = Field(default=None, alias="doseNumber", description="Nominal position of the recommended dose in a series as determined by the evaluation and forecasting process (e.g. dose 2 is the next recommended dose).") - seriesDoses_field: stringModel = Field(default=None, alias="seriesDoses", description="The recommended number of doses to achieve immunity as determined by the evaluation and forecasting process.") - supportingImmunization_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingImmunization", description="Immunization event history and/or evaluation that supports the status and recommendation.") - supportingPatientInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingPatientInformation", description="Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.") - -class ImmunizationRecommendation_DateCriterionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Date classification of recommendation. For example, earliest date to give, latest date to give, etc.") - value_field: dateTimeModel = Field(default=None, alias="value", description="The date whose meaning is specified by dateCriterion.code.") - -class ImplementationGuideModel(BaseModel): - resourceType_field: str = "ImplementationGuide" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the implementation guide.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this implementation guide. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the implementation guide was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the implementation guide.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the implementation guide from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the implementation guide is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this implementation guide is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - packageId_field: idModel = Field(default=None, alias="packageId", description="The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.") - license_field: codeModel = Field(default=None, alias="license", description="The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.") - fhirVersion_field: List[codeModel] = Field(default_factory=list, alias="fhirVersion", description="The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.6.0. for this version.") - dependsOn_field: List[ImplementationGuide_DependsOnModel] = Field(default_factory=list, alias="dependsOn", description="Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.") - global_field: List[ImplementationGuide_GlobalModel] = Field(default_factory=list, alias="global", description="A set of profiles that all resources covered by this implementation guide must conform to.") - definition_field: ImplementationGuide_DefinitionModel = Field(default=None, alias="definition", description="The information needed by an IG publisher tool to publish the whole implementation guide.") - manifest_field: ImplementationGuide_ManifestModel = Field(default=None, alias="manifest", description="Information about an assembled implementation guide, created by the publication tooling.") - -class ImplementationGuide_DependsOnModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - uri_field: canonicalModel = Field(default=None, alias="uri", description="A canonical reference to the Implementation guide for the dependency.") - packageId_field: idModel = Field(default=None, alias="packageId", description="The NPM package name for the Implementation Guide that this IG depends on.") - version_field: stringModel = Field(default=None, alias="version", description="The version of the IG that is depended on, when the correct version is required to understand the IG correctly.") - reason_field: markdownModel = Field(default=None, alias="reason", description="A description explaining the nature of the dependency on the listed IG.") - -class ImplementationGuide_GlobalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of resource that all instances must conform to.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="A reference to the profile that all instances must conform to.") - -class ImplementationGuide_DefinitionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - grouping_field: List[ImplementationGuide_GroupingModel] = Field(default_factory=list, alias="grouping", description="A logical group of resources. Logical groups can be used when building pages.") - resource_field: List[ImplementationGuide_ResourceModel] = Field(default_factory=list, alias="resource", description="A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.") - page_field: ImplementationGuide_PageModel = Field(default=None, alias="page", description="A page / section in the implementation guide. The root page is the implementation guide home page.") - parameter_field: List[ImplementationGuide_ParameterModel] = Field(default_factory=list, alias="parameter", description="A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides.") - template_field: List[ImplementationGuide_TemplateModel] = Field(default_factory=list, alias="template", description="A template for building resources.") - -class ImplementationGuide_GroupingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The human-readable title to display for the package of resources when rendering the implementation guide.") - description_field: markdownModel = Field(default=None, alias="description", description="Human readable text describing the package.") - -class ImplementationGuide_ResourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="Where this resource is found.") - fhirVersion_field: List[codeModel] = Field(default_factory=list, alias="fhirVersion", description="Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.") - name_field: stringModel = Field(default=None, alias="name", description="A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).") - description_field: markdownModel = Field(default=None, alias="description", description="A description of the reason that a resource has been included in the implementation guide.") - isExample_field: booleanModel = Field(default=None, alias="isExample", description="If true, indicates the resource is an example instance.") - profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="If present, indicates profile(s) the instance is valid against.") - groupingId_field: idModel = Field(default=None, alias="groupingId", description="Reference to the id of the grouping this resource appears in.") - -class ImplementationGuide_PageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: urlModel = Field(default=None, alias="name", description="The url by which the page should be known when published.") - title_field: stringModel = Field(default=None, alias="title", description="A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.") - generation_field: codeModel = Field(default=None, alias="generation", description="A code that indicates how the page is generated.") - page_field: List[ImplementationGuide_PageModel] = Field(default_factory=list, alias="page", description="Nested Pages/Sections under this page.") - -class ImplementationGuide_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodingModel = Field(default=None, alias="code", description="A tool-specific code that defines the parameter.") - value_field: stringModel = Field(default=None, alias="value", description="Value for named type.") - -class ImplementationGuide_TemplateModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Type of template specified.") - source_field: stringModel = Field(default=None, alias="source", description="The source location for the template.") - scope_field: stringModel = Field(default=None, alias="scope", description="The scope in which the template applies.") - -class ImplementationGuide_ManifestModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - rendering_field: urlModel = Field(default=None, alias="rendering", description="A pointer to official web page, PDF or other rendering of the implementation guide.") - resource_field: List[ImplementationGuide_Resource1Model] = Field(default_factory=list, alias="resource", description="A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.") - page_field: List[ImplementationGuide_Page1Model] = Field(default_factory=list, alias="page", description="Information about a page within the IG.") - image_field: List[stringModel] = Field(default_factory=list, alias="image", description="Indicates a relative path to an image that exists within the IG.") - other_field: List[stringModel] = Field(default_factory=list, alias="other", description="Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.") - -class ImplementationGuide_Resource1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="Where this resource is found.") - isExample_field: booleanModel = Field(default=None, alias="isExample", description="If true, indicates the resource is an example instance.") - profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="If present, indicates profile(s) the instance is valid against.") - relativePath_field: urlModel = Field(default=None, alias="relativePath", description="The relative path for primary page for this resource within the IG.") - -class ImplementationGuide_Page1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Relative path to the page.") - title_field: stringModel = Field(default=None, alias="title", description="Label for the page intended for human display.") - anchor_field: List[stringModel] = Field(default_factory=list, alias="anchor", description="The name of an anchor available on the page.") - -class IngredientModel(BaseModel): - resourceType_field: str = "Ingredient" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The identifier(s) of this Ingredient that are assigned by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this ingredient. Enables tracking the life-cycle of the content.") - for_field: List[ReferenceModel] = Field(default_factory=list, alias="for", description="The product which this ingredient is a constituent part of.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="A classification of the ingredient identifying its purpose within the product, e.g. active, inactive.") - function_field: List[CodeableConceptModel] = Field(default_factory=list, alias="function", description="A classification of the ingredient identifying its precise purpose(s) in the drug product. This extends the Ingredient.role to add more detail. Example: antioxidant, alkalizing agent.") - group_field: CodeableConceptModel = Field(default=None, alias="group", description="A classification of the ingredient according to where in the physical item it tends to be used, such the outer shell of a tablet, inner body or ink.") - allergenicIndicator_field: booleanModel = Field(default=None, alias="allergenicIndicator", description="If the ingredient is a known or suspected allergen. Note that this is a property of the substance, so if a reference to a SubstanceDefinition is used to decribe that (rather than just a code), the allergen information should go there, not here.") - comment_field: markdownModel = Field(default=None, alias="comment", description="A place for providing any notes that are relevant to the component, e.g. removed during process, adjusted for loss on drying.") - manufacturer_field: List[Ingredient_ManufacturerModel] = Field(default_factory=list, alias="manufacturer", description="The organization(s) that manufacture this ingredient. Can be used to indicate: 1) Organizations we are aware of that manufacture this ingredient 2) Specific Manufacturer(s) currently being used 3) Set of organisations allowed to manufacture this ingredient for this product Users must be clear on the application of context relevant to their use case.") - substance_field: Ingredient_SubstanceModel = Field(default=None, alias="substance", description="The substance that comprises this ingredient.") - -class Ingredient_ManufacturerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: codeModel = Field(default=None, alias="role", description="The way in which this manufacturer is associated with the ingredient. For example whether it is a possible one (others allowed), or an exclusive authorized one for this ingredient. Note that this is not the manufacturing process role.") - manufacturer_field: ReferenceModel = Field(default=None, alias="manufacturer", description="An organization that manufactures this ingredient.") - -class Ingredient_SubstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableReferenceModel = Field(default=None, alias="code", description="A code or full resource that represents the ingredient's substance.") - strength_field: List[Ingredient_StrengthModel] = Field(default_factory=list, alias="strength", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. The allowed repetitions do not represent different strengths, but are different representations - mathematically equivalent - of a single strength.") - -class Ingredient_StrengthModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - presentationRatio_field: RatioModel = Field(default=None, alias="presentationRatio", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") - presentationRatioRange_field: RatioRangeModel = Field(default=None, alias="presentationRatioRange", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") - presentationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="presentationCodeableConcept", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") - presentationQuantity_field: QuantityModel = Field(default=None, alias="presentationQuantity", description="The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item. Unit of presentation refers to the quantity that the item occurs in e.g. a strength per tablet size, perhaps 'per 20mg' (the size of the tablet). It is not generally normalized as a unitary unit, which would be 'per mg').") - textPresentation_field: stringModel = Field(default=None, alias="textPresentation", description="A textual represention of either the whole of the presentation strength or a part of it - with the rest being in Strength.presentation as a ratio.") - concentrationRatio_field: RatioModel = Field(default=None, alias="concentrationRatio", description="The strength per unitary volume (or mass).") - concentrationRatioRange_field: RatioRangeModel = Field(default=None, alias="concentrationRatioRange", description="The strength per unitary volume (or mass).") - concentrationCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="concentrationCodeableConcept", description="The strength per unitary volume (or mass).") - concentrationQuantity_field: QuantityModel = Field(default=None, alias="concentrationQuantity", description="The strength per unitary volume (or mass).") - textConcentration_field: stringModel = Field(default=None, alias="textConcentration", description="A textual represention of either the whole of the concentration strength or a part of it - with the rest being in Strength.concentration as a ratio.") - basis_field: CodeableConceptModel = Field(default=None, alias="basis", description="A code that indicates if the strength is, for example, based on the ingredient substance as stated or on the substance base (when the ingredient is a salt).") - measurementPoint_field: stringModel = Field(default=None, alias="measurementPoint", description="For when strength is measured at a particular point or distance. There are products where strength is measured at a particular point. For example, the strength of the ingredient in some inhalers is measured at a particular position relative to the point of aerosolization.") - country_field: List[CodeableConceptModel] = Field(default_factory=list, alias="country", description="The country or countries for which the strength range applies.") - referenceStrength_field: List[Ingredient_ReferenceStrengthModel] = Field(default_factory=list, alias="referenceStrength", description="Strength expressed in terms of a reference substance. For when the ingredient strength is additionally expressed as equivalent to the strength of some other closely related substance (e.g. salt vs. base). Reference strength represents the strength (quantitative composition) of the active moiety of the active substance. There are situations when the active substance and active moiety are different, therefore both a strength and a reference strength are needed.") - -class Ingredient_ReferenceStrengthModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - substance_field: CodeableReferenceModel = Field(default=None, alias="substance", description="Relevant reference substance.") - strengthRatio_field: RatioModel = Field(default=None, alias="strengthRatio", description="Strength expressed in terms of a reference substance.") - strengthRatioRange_field: RatioRangeModel = Field(default=None, alias="strengthRatioRange", description="Strength expressed in terms of a reference substance.") - strengthQuantity_field: QuantityModel = Field(default=None, alias="strengthQuantity", description="Strength expressed in terms of a reference substance.") - measurementPoint_field: stringModel = Field(default=None, alias="measurementPoint", description="For when strength is measured at a particular point or distance.") - country_field: List[CodeableConceptModel] = Field(default_factory=list, alias="country", description="The country or countries for which the strength range applies.") - -class InsurancePlanModel(BaseModel): - resourceType_field: str = "InsurancePlan" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this health insurance product which remain constant as the resource is updated and propagates from server to server.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the health insurance product.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind of health insurance product.") - name_field: stringModel = Field(default=None, alias="name", description="Official name of the health insurance product as designated by the owner.") - alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="A list of alternate names that the product is known as, or was known as in the past.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time that the health insurance product is available.") - ownedBy_field: ReferenceModel = Field(default=None, alias="ownedBy", description="The entity that is providing the health insurance product and underwriting the risk. This is typically an insurance carriers, other third-party payers, or health plan sponsors comonly referred to as 'payers'.") - administeredBy_field: ReferenceModel = Field(default=None, alias="administeredBy", description="An organization which administer other services such as underwriting, customer service and/or claims processing on behalf of the health insurance product owner.") - coverageArea_field: List[ReferenceModel] = Field(default_factory=list, alias="coverageArea", description="The geographic region in which a health insurance product's benefits apply.") - contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific Insurance Plan/Product. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="The technical endpoints providing access to services operated for the health insurance product.") - network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="Reference to the network included in the health insurance product.") - coverage_field: List[InsurancePlan_CoverageModel] = Field(default_factory=list, alias="coverage", description="Details about the coverage offered by the insurance product.") - plan_field: List[InsurancePlan_PlanModel] = Field(default_factory=list, alias="plan", description="Details about an insurance plan.") - -class InsurancePlan_CoverageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of coverage (Medical; Dental; Mental Health; Substance Abuse; Vision; Drug; Short Term; Long Term Care; Hospice; Home Health).") - network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="Reference to the network that providing the type of coverage.") - benefit_field: List[InsurancePlan_BenefitModel] = Field(default_factory=list, alias="benefit", description="Specific benefits under this type of coverage.") - -class InsurancePlan_BenefitModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of benefit (primary care; speciality care; inpatient; outpatient).") - requirement_field: stringModel = Field(default=None, alias="requirement", description="The referral requirements to have access/coverage for this benefit.") - limit_field: List[InsurancePlan_LimitModel] = Field(default_factory=list, alias="limit", description="The specific limits on the benefit.") - -class InsurancePlan_LimitModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - value_field: QuantityModel = Field(default=None, alias="value", description="The maximum amount of a service item a plan will pay for a covered benefit. For examples. wellness visits, or eyeglasses.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The specific limit on the benefit.") - -class InsurancePlan_PlanModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this health insurance plan which remain constant as the resource is updated and propagates from server to server.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of plan. For example, Platinum or High Deductable.") - coverageArea_field: List[ReferenceModel] = Field(default_factory=list, alias="coverageArea", description="The geographic region in which a health insurance plan's benefits apply.") - network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="Reference to the network that providing the type of coverage.") - generalCost_field: List[InsurancePlan_GeneralCostModel] = Field(default_factory=list, alias="generalCost", description="Overall costs associated with the plan.") - specificCost_field: List[InsurancePlan_SpecificCostModel] = Field(default_factory=list, alias="specificCost", description="Costs associated with the coverage provided by the product.") - -class InsurancePlan_GeneralCostModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of cost.") - groupSize_field: positiveIntModel = Field(default=None, alias="groupSize", description="Number of participants enrolled in the plan.") - cost_field: MoneyModel = Field(default=None, alias="cost", description="Value of the cost.") - comment_field: stringModel = Field(default=None, alias="comment", description="Additional information about the general costs associated with this plan.") - -class InsurancePlan_SpecificCostModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="General category of benefit (Medical; Dental; Vision; Drug; Mental Health; Substance Abuse; Hospice, Home Health).") - benefit_field: List[InsurancePlan_Benefit1Model] = Field(default_factory=list, alias="benefit", description="List of the specific benefits under this category of benefit.") - -class InsurancePlan_Benefit1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of specific benefit (preventative; primary care office visit; speciality office visit; hospitalization; emergency room; urgent care).") - cost_field: List[InsurancePlan_CostModel] = Field(default_factory=list, alias="cost", description="List of the costs associated with a specific benefit.") - -class InsurancePlan_CostModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of cost (copay; individual cap; family cap; coinsurance; deductible).") - applicability_field: CodeableConceptModel = Field(default=None, alias="applicability", description="Whether the cost applies to in-network or out-of-network providers (in-network; out-of-network; other).") - qualifiers_field: List[CodeableConceptModel] = Field(default_factory=list, alias="qualifiers", description="Additional information about the cost, such as information about funding sources (e.g. HSA, HRA, FSA, RRA).") - value_field: QuantityModel = Field(default=None, alias="value", description="The actual cost value. (some of the costs may be represented as percentages rather than currency, e.g. 10% coinsurance).") - -class InventoryItemModel(BaseModel): - resourceType_field: str = "InventoryItem" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for the inventory item.") - status_field: codeModel = Field(default=None, alias="status", description="Status of the item entry.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Category or class of the item.") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Code designating the specific type of item.") - name_field: List[InventoryItem_NameModel] = Field(default_factory=list, alias="name", description="The item name(s) - the brand name, or common name, functional name, generic name.") - responsibleOrganization_field: List[InventoryItem_ResponsibleOrganizationModel] = Field(default_factory=list, alias="responsibleOrganization", description="Organization(s) responsible for the product.") - description_field: InventoryItem_DescriptionModel = Field(default=None, alias="description", description="The descriptive characteristics of the inventory item.") - inventoryStatus_field: List[CodeableConceptModel] = Field(default_factory=list, alias="inventoryStatus", description="The usage status e.g. recalled, in use, discarded... This can be used to indicate that the items have been taken out of inventory, or are in use, etc.") - baseUnit_field: CodeableConceptModel = Field(default=None, alias="baseUnit", description="The base unit of measure - the unit in which the product is used or counted.") - netContent_field: QuantityModel = Field(default=None, alias="netContent", description="Net content or amount present in the item.") - association_field: List[InventoryItem_AssociationModel] = Field(default_factory=list, alias="association", description="Association with other items or products.") - characteristic_field: List[InventoryItem_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="The descriptive or identifying characteristics of the item.") - instance_field: InventoryItem_InstanceModel = Field(default=None, alias="instance", description="Instances or occurrences of the product.") - productReference_field: ReferenceModel = Field(default=None, alias="productReference", description="Link to a product resource used in clinical workflows.") - -class InventoryItem_NameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - nameType_field: CodingModel = Field(default=None, alias="nameType", description="The type of name e.g. 'brand-name', 'functional-name', 'common-name'.") - language_field: codeModel = Field(default=None, alias="language", description="The language that the item name is expressed in.") - name_field: stringModel = Field(default=None, alias="name", description="The name or designation that the item is given.") - -class InventoryItem_ResponsibleOrganizationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role of the organization e.g. manufacturer, distributor, etc.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="An organization that has an association with the item, e.g. manufacturer, distributor, responsible, etc.") - -class InventoryItem_DescriptionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: codeModel = Field(default=None, alias="language", description="The language for the item description, when an item must be described in different languages and those languages may be authoritative and not translations of a 'main' language.") - description_field: stringModel = Field(default=None, alias="description", description="Textual description of the item.") - -class InventoryItem_AssociationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - associationType_field: CodeableConceptModel = Field(default=None, alias="associationType", description="This attribute defined the type of association when establishing associations or relations between items, e.g. 'packaged within' or 'used with' or 'to be mixed with.") - relatedItem_field: ReferenceModel = Field(default=None, alias="relatedItem", description="The related item or product.") - quantity_field: RatioModel = Field(default=None, alias="quantity", description="The quantity of the related product in this product - Numerator is the quantity of the related product. Denominator is the quantity of the present product. For example a value of 20 means that this product contains 20 units of the related product; a value of 1:20 means the inverse - that the contained product contains 20 units of the present product.") - -class InventoryItem_CharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - characteristicType_field: CodeableConceptModel = Field(default=None, alias="characteristicType", description="The type of characteristic that is being defined.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the attribute.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the attribute.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the attribute.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the attribute.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the attribute.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the attribute.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the attribute.") - -class InventoryItem_InstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The identifier for the physical instance, typically a serial number.") - lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="The lot or batch number of the item.") - expiry_field: dateTimeModel = Field(default=None, alias="expiry", description="The expiry date or date and time for the product.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject that the item is associated with.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location that the item is associated with.") - -class InventoryReportModel(BaseModel): - resourceType_field: str = "InventoryReport" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for the InventoryReport.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the inventory check or notification - whether this is draft (e.g. the report is still pending some updates) or active.") - countType_field: codeModel = Field(default=None, alias="countType", description="Whether the report is about the current inventory count (snapshot) or a differential change in inventory (change).") - operationType_field: CodeableConceptModel = Field(default=None, alias="operationType", description="What type of operation is being performed - addition or subtraction.") - operationTypeReason_field: CodeableConceptModel = Field(default=None, alias="operationTypeReason", description="The reason for this count - regular count, ad-hoc count, new arrivals, etc.") - reportedDateTime_field: dateTimeModel = Field(default=None, alias="reportedDateTime", description="When the report has been submitted.") - reporter_field: ReferenceModel = Field(default=None, alias="reporter", description="Who submits the report.") - reportingPeriod_field: PeriodModel = Field(default=None, alias="reportingPeriod", description="The period the report refers to.") - inventoryListing_field: List[InventoryReport_InventoryListingModel] = Field(default_factory=list, alias="inventoryListing", description="An inventory listing section (grouped by any of the attributes).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="A note associated with the InventoryReport.") - -class InventoryReport_InventoryListingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - location_field: ReferenceModel = Field(default=None, alias="location", description="Location of the inventory items.") - itemStatus_field: CodeableConceptModel = Field(default=None, alias="itemStatus", description="The status of the items.") - countingDateTime_field: dateTimeModel = Field(default=None, alias="countingDateTime", description="The date and time when the items were counted.") - item_field: List[InventoryReport_ItemModel] = Field(default_factory=list, alias="item", description="The item or items in this listing.") - -class InventoryReport_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="The inventory category or classification of the items being reported. This is meant not for defining the product, but for inventory categories e.g. 'pending recount' or 'damaged'.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The quantity of the item or items being reported.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The code or reference to the item type.") - -class InvoiceModel(BaseModel): - resourceType_field: str = "Invoice" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier of this Invoice, often used for reference in correspondence about this invoice or for tracking of payments.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the Invoice.") - cancelledReason_field: stringModel = Field(default=None, alias="cancelledReason", description="In case of Invoice cancellation a reason must be given (entered in error, superseded by corrected invoice etc.).") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of Invoice depending on domain, realm an usage (e.g. internal/external, dental, preliminary).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual or set of individuals receiving the goods and services billed in this invoice.") - recipient_field: ReferenceModel = Field(default=None, alias="recipient", description="The individual or Organization responsible for balancing of this invoice.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Depricared by the element below.") - creation_field: dateTimeModel = Field(default=None, alias="creation", description="Date/time(s) of when this Invoice was posted.") - periodPeriod_field: PeriodModel = Field(default=None, alias="periodPeriod", description="Date/time(s) range of services included in this invoice.") - participant_field: List[Invoice_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who or what performed or participated in the charged service.") - issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="The organizationissuing the Invoice.") - account_field: ReferenceModel = Field(default=None, alias="account", description="Account which is supposed to be balanced with this Invoice.") - lineItem_field: List[Invoice_LineItemModel] = Field(default_factory=list, alias="lineItem", description="Each line item represents one charge for goods and services rendered. Details such.ofType(date), code and amount are found in the referenced ChargeItem resource.") - totalPriceComponent_field: List[MonetaryComponentModel] = Field(default_factory=list, alias="totalPriceComponent", description="The total amount for the Invoice may be calculated as the sum of the line items with surcharges/deductions that apply in certain conditions. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the total price was calculated.") - totalNet_field: MoneyModel = Field(default=None, alias="totalNet", description="Invoice total , taxes excluded.") - totalGross_field: MoneyModel = Field(default=None, alias="totalGross", description="Invoice total, tax included.") - paymentTerms_field: markdownModel = Field(default=None, alias="paymentTerms", description="Payment details such as banking details, period of payment, deductibles, methods of payment.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the invoice by the issuer, subject, or other participants.") - -class Invoice_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Describes the type of involvement (e.g. transcriptionist, creator etc.). If the invoice has been created automatically, the Participant may be a billing engine or another kind of device.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed or participated in the service.") - -class Invoice_LineItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: positiveIntModel = Field(default=None, alias="sequence", description="Sequence in which the items appear on the invoice.") - servicedPeriod_field: PeriodModel = Field(default=None, alias="servicedPeriod", description="Date/time(s) range when this service was delivered or completed.") - chargeItemReference_field: ReferenceModel = Field(default=None, alias="chargeItemReference", description="The ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference.") - chargeItemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="chargeItemCodeableConcept", description="The ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference.") - priceComponent_field: List[MonetaryComponentModel] = Field(default_factory=list, alias="priceComponent", description="The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice as to how the prices have been calculated.") - -class LibraryModel(BaseModel): - resourceType_field: str = "Library" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this library when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the library.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this library. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the library was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the library changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the library.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the library from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate library instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the library is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this library is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the library content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the library giving additional information about its content.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code or group definition that describes the intended subject of the contents of the library.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code or group definition that describes the intended subject of the contents of the library.") - usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the library is used from a clinical perspective.") - parameter_field: List[ParameterDefinitionModel] = Field(default_factory=list, alias="parameter", description="The parameter element defines parameters used by the library.") - dataRequirement_field: List[DataRequirementModel] = Field(default_factory=list, alias="dataRequirement", description="Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library.") - content_field: List[AttachmentModel] = Field(default_factory=list, alias="content", description="The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content.") - -class LinkageModel(BaseModel): - resourceType_field: str = "Linkage" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - active_field: booleanModel = Field(default=None, alias="active", description="Indicates whether the asserted set of linkages are considered to be in effect.") - author_field: ReferenceModel = Field(default=None, alias="author", description="Identifies the user or organization responsible for asserting the linkages as well as the user or organization who establishes the context in which the nature of each linkage is evaluated.") - item_field: List[Linkage_ItemModel] = Field(default_factory=list, alias="item", description="Identifies which record considered as the reference to the same real-world occurrence as well as how the items should be evaluated within the collection of linked items.") - -class Linkage_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="Distinguishes which item is source of truth (if any) and which items are no longer considered to be current representations.") - resource_field: ReferenceModel = Field(default=None, alias="resource", description="The resource instance being linked as part of the group.") - -class ListModel(BaseModel): - resourceType_field: str = "List" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the List assigned for business purposes outside the context of FHIR.") - status_field: codeModel = Field(default=None, alias="status", description="Indicates the current state of this list.") - mode_field: codeModel = Field(default=None, alias="mode", description="How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.") - title_field: stringModel = Field(default=None, alias="title", description="A label for the list assigned by the author.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="This code defines the purpose of the list - why it was created.") - subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The common subject(s) (or patient(s)) of the resources that are in the list if there is one (or a set of subjects).") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that is the context in which this list was created.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Date list was last reviewed/revised and determined to be 'current'.") - source_field: ReferenceModel = Field(default=None, alias="source", description="The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list.") - orderedBy_field: CodeableConceptModel = Field(default=None, alias="orderedBy", description="What order applies to the items in the list.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments that apply to the overall list.") - entry_field: List[List_EntryModel] = Field(default_factory=list, alias="entry", description="Entries in this list.") - emptyReason_field: CodeableConceptModel = Field(default=None, alias="emptyReason", description="If the list is empty, why the list is empty.") - -class List_EntryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - flag_field: CodeableConceptModel = Field(default=None, alias="flag", description="The flag allows the system constructing the list to indicate the role and significance of the item in the list.") - deleted_field: booleanModel = Field(default=None, alias="deleted", description="True if this item is marked as deleted in the list.") - date_field: dateTimeModel = Field(default=None, alias="date", description="When this item was added to the list.") - item_field: ReferenceModel = Field(default=None, alias="item", description="A reference to the actual resource from which data was derived.") - -class LocationModel(BaseModel): - resourceType_field: str = "Location" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique code or number identifying the location to its users.") - status_field: codeModel = Field(default=None, alias="status", description="The status property covers the general availability of the resource, not the current value which may be covered by the operationStatus, or by a schedule/slots if they are configured for the location.") - operationalStatus_field: CodingModel = Field(default=None, alias="operationalStatus", description="The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenance.") - name_field: stringModel = Field(default=None, alias="name", description="Name of the location as used by humans. Does not need to be unique.") - alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="A list of alternate names that the location is known as, or was known as, in the past.") - description_field: markdownModel = Field(default=None, alias="description", description="Description of the Location, which helps in finding or referencing the place.") - mode_field: codeModel = Field(default=None, alias="mode", description="Indicates whether a resource instance represents a specific location or a class of locations.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Indicates the type of function performed at the location.") - contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available at the location. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") - address_field: AddressModel = Field(default=None, alias="address", description="Physical location.") - form_field: CodeableConceptModel = Field(default=None, alias="form", description="Physical form of the location, e.g. building, room, vehicle, road, virtual.") - position_field: Location_PositionModel = Field(default=None, alias="position", description="The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML).") - managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization responsible for the provisioning and upkeep of the location.") - partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="Another Location of which this Location is physically a part of.") - characteristic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="characteristic", description="Collection of characteristics (attributes).") - hoursOfOperation_field: List[AvailabilityModel] = Field(default_factory=list, alias="hoursOfOperation", description="What days/times during a week is this location usually open, and any exceptions where the location is not available.") - virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. shared conference call facility with dedicated number/details).") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for the location.") - -class Location_PositionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - longitude_field: decimalModel = Field(default=None, alias="longitude", description="Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes on Location main page).") - latitude_field: decimalModel = Field(default=None, alias="latitude", description="Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes on Location main page).") - altitude_field: decimalModel = Field(default=None, alias="altitude", description="Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes on Location main page).") - -class ManufacturedItemDefinitionModel(BaseModel): - resourceType_field: str = "ManufacturedItemDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this item. Enables tracking the life-cycle of the content.") - name_field: stringModel = Field(default=None, alias="name", description="A descriptive name applied to this item.") - manufacturedDoseForm_field: CodeableConceptModel = Field(default=None, alias="manufacturedDoseForm", description="Dose form as manufactured and before any transformation into the pharmaceutical product.") - unitOfPresentation_field: CodeableConceptModel = Field(default=None, alias="unitOfPresentation", description="The “real-world” units in which the quantity of the manufactured item is described.") - manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="Manufacturer of the item, one of several possible.") - marketingStatus_field: List[MarketingStatusModel] = Field(default_factory=list, alias="marketingStatus", description="Allows specifying that an item is on the market for sale, or that it is not available, and the dates and locations associated.") - ingredient_field: List[CodeableConceptModel] = Field(default_factory=list, alias="ingredient", description="The ingredients of this manufactured item. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource.") - property_field: List[ManufacturedItemDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General characteristics of this item.") - component_field: List[ManufacturedItemDefinition_ComponentModel] = Field(default_factory=list, alias="component", description="Physical parts of the manufactured item, that it is intrisically made from. This is distinct from the ingredients that are part of its chemical makeup.") - -class ManufacturedItemDefinition_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A value for the characteristic.") - -class ManufacturedItemDefinition_ComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Defining type of the component e.g. shell, layer, ink.") - function_field: List[CodeableConceptModel] = Field(default_factory=list, alias="function", description="The function of this component within the item e.g. delivers active ingredient, masks taste.") - amount_field: List[QuantityModel] = Field(default_factory=list, alias="amount", description="The measurable amount of total quantity of all substances in the component, expressable in different ways (e.g. by mass or volume).") - constituent_field: List[ManufacturedItemDefinition_ConstituentModel] = Field(default_factory=list, alias="constituent", description="A reference to a constituent of the manufactured item as a whole, linked here so that its component location within the item can be indicated. This not where the item's ingredient are primarily stated (for which see Ingredient.for or ManufacturedItemDefinition.ingredient).") - property_field: List[ManufacturedItemDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General characteristics of this component.") - component_field: List[ManufacturedItemDefinition_ComponentModel] = Field(default_factory=list, alias="component", description="A component that this component contains or is made from.") - -class ManufacturedItemDefinition_ConstituentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - amount_field: List[QuantityModel] = Field(default_factory=list, alias="amount", description="The measurable amount of the substance, expressable in different ways (e.g. by mass or volume).") - location_field: List[CodeableConceptModel] = Field(default_factory=list, alias="location", description="The physical location of the constituent/ingredient within the component. Example – if the component is the bead in the capsule, then the location would be where the ingredient resides within the product part – intragranular, extra-granular, etc.") - function_field: List[CodeableConceptModel] = Field(default_factory=list, alias="function", description="The function of this constituent within the component e.g. binder.") - hasIngredient_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="hasIngredient", description="The ingredient that is the constituent of the given component.") - -class MeasureModel(BaseModel): - resourceType_field: str = "Measure" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the measure.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this measure. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the measure was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the measure.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the measure from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate measure instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the measure is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this measure is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the measure content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the measure giving additional information about its content.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") - basis_field: codeModel = Field(default=None, alias="basis", description="The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.") - usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description, from a clinical perspective, of how the measure is used.") - library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing the formal logic used by the measure.") - disclaimer_field: markdownModel = Field(default=None, alias="disclaimer", description="Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.") - scoring_field: CodeableConceptModel = Field(default=None, alias="scoring", description="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.") - scoringUnit_field: CodeableConceptModel = Field(default=None, alias="scoringUnit", description="Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.") - compositeScoring_field: CodeableConceptModel = Field(default=None, alias="compositeScoring", description="If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.") - riskAdjustment_field: markdownModel = Field(default=None, alias="riskAdjustment", description="A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.") - rateAggregation_field: markdownModel = Field(default=None, alias="rateAggregation", description="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.") - rationale_field: markdownModel = Field(default=None, alias="rationale", description="Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.") - clinicalRecommendationStatement_field: markdownModel = Field(default=None, alias="clinicalRecommendationStatement", description="Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.") - improvementNotation_field: CodeableConceptModel = Field(default=None, alias="improvementNotation", description="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).") - term_field: List[Measure_TermModel] = Field(default_factory=list, alias="term", description="Provides a description of an individual term used within the measure.") - guidance_field: markdownModel = Field(default=None, alias="guidance", description="Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.") - group_field: List[Measure_GroupModel] = Field(default_factory=list, alias="group", description="A group of population criteria for the measure.") - supplementalData_field: List[Measure_SupplementalDataModel] = Field(default_factory=list, alias="supplementalData", description="The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.") - -class Measure_TermModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A codeable representation of the defined term.") - definition_field: markdownModel = Field(default=None, alias="definition", description="Provides a definition for the term as used within the measure.") - -class Measure_GroupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this population group.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.") - basis_field: codeModel = Field(default=None, alias="basis", description="The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.") - scoring_field: CodeableConceptModel = Field(default=None, alias="scoring", description="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.") - scoringUnit_field: CodeableConceptModel = Field(default=None, alias="scoringUnit", description="Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.") - rateAggregation_field: markdownModel = Field(default=None, alias="rateAggregation", description="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.") - improvementNotation_field: CodeableConceptModel = Field(default=None, alias="improvementNotation", description="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).") - library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing the formal logic used by the measure group.") - population_field: List[Measure_PopulationModel] = Field(default_factory=list, alias="population", description="A population criteria for the measure.") - stratifier_field: List[Measure_StratifierModel] = Field(default_factory=list, alias="stratifier", description="The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.") - -class Measure_PopulationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of population criteria.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this population criteria.") - criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="An expression that specifies the criteria for the population, typically the name of an expression in a library.") - groupDefinition_field: ReferenceModel = Field(default=None, alias="groupDefinition", description="A Group resource that defines this population as a set of characteristics.") - inputPopulationId_field: stringModel = Field(default=None, alias="inputPopulationId", description="The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.") - aggregateMethod_field: CodeableConceptModel = Field(default=None, alias="aggregateMethod", description="Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.") - -class Measure_StratifierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this stratifier criteria.") - criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.") - groupDefinition_field: ReferenceModel = Field(default=None, alias="groupDefinition", description="A Group resource that defines this population as a set of characteristics.") - component_field: List[Measure_ComponentModel] = Field(default_factory=list, alias="component", description="A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.") - -class Measure_ComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this stratifier criteria component.") - criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.") - groupDefinition_field: ReferenceModel = Field(default=None, alias="groupDefinition", description="A Group resource that defines this population as a set of characteristics.") - -class Measure_SupplementalDataModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.") - usage_field: List[CodeableConceptModel] = Field(default_factory=list, alias="usage", description="An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this supplemental data.") - criteria_field: ExpressionModel = Field(default=None, alias="criteria", description="The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.") - -class MeasureReportModel(BaseModel): - resourceType_field: str = "MeasureReport" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this MeasureReport when it is represented in other formats or referenced in a specification, model, design or an instance.") - status_field: codeModel = Field(default=None, alias="status", description="The MeasureReport status. No data will be available until the MeasureReport status is complete.") - type_field: codeModel = Field(default=None, alias="type", description="The type of measure report. This may be an individual report, which provides the score for the measure for an individual member of the population; a subject-listing, which returns the list of members that meet the various criteria in the measure; a summary report, which returns a population count for each of the criteria in the measure; or a data-collection, which enables the MeasureReport to be used to exchange the data-of-interest for a quality measure.") - dataUpdateType_field: codeModel = Field(default=None, alias="dataUpdateType", description="Indicates whether the data submitted in a data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver.") - measure_field: canonicalModel = Field(default=None, alias="measure", description="A reference to the Measure that was calculated to produce this report.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Optional subject identifying the individual or individuals the report is for.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date this measure was calculated.") - reporter_field: ReferenceModel = Field(default=None, alias="reporter", description="The individual or organization that is reporting the data.") - reportingVendor_field: ReferenceModel = Field(default=None, alias="reportingVendor", description="A reference to the vendor who queried the data, calculated results and/or generated the report. The ‘reporting vendor’ is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report.") - location_field: ReferenceModel = Field(default=None, alias="location", description="A reference to the location for which the data is being reported.") - period_field: PeriodModel = Field(default=None, alias="period", description="The reporting period for which the report was calculated.") - inputParameters_field: ReferenceModel = Field(default=None, alias="inputParameters", description="A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report.") - scoring_field: CodeableConceptModel = Field(default=None, alias="scoring", description="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure.") - improvementNotation_field: CodeableConceptModel = Field(default=None, alias="improvementNotation", description="Whether improvement in the measure is noted by an increase or decrease in the measure score.") - group_field: List[MeasureReport_GroupModel] = Field(default_factory=list, alias="group", description="The results of the calculation, one for each population group in the measure.") - supplementalData_field: List[ReferenceModel] = Field(default_factory=list, alias="supplementalData", description="A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource.") - evaluatedResource_field: List[ReferenceModel] = Field(default_factory=list, alias="evaluatedResource", description="Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded.") - -class MeasureReport_GroupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The group from the Measure that corresponds to this group in the MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The meaning of the population group as defined in the measure definition.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Optional subject identifying the individual or individuals the report is for.") - population_field: List[MeasureReport_PopulationModel] = Field(default_factory=list, alias="population", description="The populations that make up the population group, one for each type of population appropriate for the measure.") - measureScoreQuantity_field: QuantityModel = Field(default=None, alias="measureScoreQuantity", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") - measureScoreCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="measureScoreCodeableConcept", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") - measureScorePeriod_field: PeriodModel = Field(default=None, alias="measureScorePeriod", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") - measureScoreRange_field: RangeModel = Field(default=None, alias="measureScoreRange", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") - measureScoreDuration_field: DurationModel = Field(default=None, alias="measureScoreDuration", description="The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group.") - stratifier_field: List[MeasureReport_StratifierModel] = Field(default_factory=list, alias="stratifier", description="When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.") - -class MeasureReport_PopulationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The population from the Measure that corresponds to this population in the MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of the population.") - count_field: integerModel = Field(default=None, alias="count", description="The number of members of the population.") - subjectResults_field: ReferenceModel = Field(default=None, alias="subjectResults", description="This element refers to a List of individual level MeasureReport resources, one for each subject in this population.") - subjectReport_field: List[ReferenceModel] = Field(default_factory=list, alias="subjectReport", description="A reference to an individual level MeasureReport resource for a member of the population.") - subjects_field: ReferenceModel = Field(default=None, alias="subjects", description="Optional Group identifying the individuals that make up the population.") - -class MeasureReport_StratifierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The meaning of this stratifier, as defined in the measure definition.") - stratum_field: List[MeasureReport_StratumModel] = Field(default_factory=list, alias="stratum", description="This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value.") - -class MeasureReport_StratumModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.") - component_field: List[MeasureReport_ComponentModel] = Field(default_factory=list, alias="component", description="A stratifier component value.") - population_field: List[MeasureReport_Population1Model] = Field(default_factory=list, alias="population", description="The populations that make up the stratum, one for each type of population appropriate to the measure.") - measureScoreQuantity_field: QuantityModel = Field(default=None, alias="measureScoreQuantity", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") - measureScoreCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="measureScoreCodeableConcept", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") - measureScorePeriod_field: PeriodModel = Field(default=None, alias="measureScorePeriod", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") - measureScoreRange_field: RangeModel = Field(default=None, alias="measureScoreRange", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") - measureScoreDuration_field: DurationModel = Field(default=None, alias="measureScoreDuration", description="The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum.") - -class MeasureReport_ComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The code for the stratum component value.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The stratum component value.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The stratum component value.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The stratum component value.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The stratum component value.") - -class MeasureReport_Population1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The population from the Measure that corresponds to this population in the MeasureReport resource.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of the population.") - count_field: integerModel = Field(default=None, alias="count", description="The number of members of the population in this stratum.") - subjectResults_field: ReferenceModel = Field(default=None, alias="subjectResults", description="This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum.") - subjectReport_field: List[ReferenceModel] = Field(default_factory=list, alias="subjectReport", description="A reference to an individual level MeasureReport resource for a member of the population.") - subjects_field: ReferenceModel = Field(default=None, alias="subjects", description="Optional Group identifying the individuals that make up the population.") - -class MedicationModel(BaseModel): - resourceType_field: str = "Medication" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this medication.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.") - status_field: codeModel = Field(default=None, alias="status", description="A code to indicate if the medication is in active use.") - marketingAuthorizationHolder_field: ReferenceModel = Field(default=None, alias="marketingAuthorizationHolder", description="The company or other legal entity that has authorization, from the appropriate drug regulatory authority, to market a medicine in one or more jurisdictions. Typically abbreviated MAH.Note: The MAH may manufacture the product and may also contract the manufacturing of the product to one or more companies (organizations).") - doseForm_field: CodeableConceptModel = Field(default=None, alias="doseForm", description="Describes the form of the item. Powder; tablets; capsule.") - totalVolume_field: QuantityModel = Field(default=None, alias="totalVolume", description="When the specified product code does not infer a package size, this is the specific amount of drug in the product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.).") - ingredient_field: List[Medication_IngredientModel] = Field(default_factory=list, alias="ingredient", description="Identifies a particular constituent of interest in the product.") - batch_field: Medication_BatchModel = Field(default=None, alias="batch", description="Information that only applies to packages (not products).") - definition_field: ReferenceModel = Field(default=None, alias="definition", description="A reference to a knowledge resource that provides more information about this medication.") - -class Medication_IngredientModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The ingredient (substance or medication) that the ingredient.strength relates to. This is represented as a concept from a code system or described in another resource (Substance or Medication).") - isActive_field: booleanModel = Field(default=None, alias="isActive", description="Indication of whether this ingredient affects the therapeutic action of the drug.") - strengthRatio_field: RatioModel = Field(default=None, alias="strengthRatio", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") - strengthCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="strengthCodeableConcept", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") - strengthQuantity_field: QuantityModel = Field(default=None, alias="strengthQuantity", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") - -class Medication_BatchModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="The assigned lot number of a batch of the specified product.") - expirationDate_field: dateTimeModel = Field(default=None, alias="expirationDate", description="When this specific batch of product will expire.") - -class MedicationAdministrationModel(BaseModel): - resourceType_field: str = "MedicationAdministration" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan that is fulfilled in whole or in part by this MedicationAdministration.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.") - statusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="statusReason", description="A code indicating why the administration was not performed.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication).") - medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person or animal or group receiving the medication.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says give x if the heartrate exceeds y, then the heart rate can be included using this attribute.") - occurencePeriod_field: PeriodModel = Field(default=None, alias="occurencePeriod", description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.") - occurenceTiming_field: TimingModel = Field(default=None, alias="occurenceTiming", description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.") - recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.") - isSubPotent_field: booleanModel = Field(default=None, alias="isSubPotent", description="An indication that the full dose was not administered.") - subPotentReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subPotentReason", description="The reason or reasons why the full dose was not administered.") - performer_field: List[MedicationAdministration_PerformerModel] = Field(default_factory=list, alias="performer", description="The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A code, Condition or observation that supports why the medication was administered.") - request_field: ReferenceModel = Field(default=None, alias="request", description="The original request, instruction or authority to perform the administration.") - device_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="device", description="The device that is to be used for the administration of the medication (for example, PCA Pump).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the medication administration that is not conveyed by the other attributes.") - dosage_field: MedicationAdministration_DosageModel = Field(default=None, alias="dosage", description="Describes the medication dosage information details e.g. dose, rate, site, route, etc.") - eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="A summary of the events of interest that have occurred, such as when the administration was verified.") - -class MedicationAdministration_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer in the medication administration.") - actor_field: CodeableReferenceModel = Field(default=None, alias="actor", description="Indicates who or what performed the medication administration.") - -class MedicationAdministration_DosageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - text_field: stringModel = Field(default=None, alias="text", description="Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.") - site_field: CodeableConceptModel = Field(default=None, alias="site", description="A coded specification of the anatomic site where the medication first entered the body. For example, left arm.") - route_field: CodeableConceptModel = Field(default=None, alias="route", description="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.") - dose_field: QuantityModel = Field(default=None, alias="dose", description="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.") - rateRatio_field: RatioModel = Field(default=None, alias="rateRatio", description="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.") - rateQuantity_field: QuantityModel = Field(default=None, alias="rateQuantity", description="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.") - -class MedicationDispenseModel(BaseModel): - resourceType_field: str = "MedicationDispense" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Medication Dispense that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan that is fulfilled in whole or in part by this MedicationDispense.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="The procedure or medication administration that triggered the dispense.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the set of dispense events.") - notPerformedReason_field: CodeableReferenceModel = Field(default=None, alias="notPerformedReason", description="Indicates the reason why a dispense was not performed.") - statusChanged_field: dateTimeModel = Field(default=None, alias="statusChanged", description="The date (and maybe time) when the status of the dispense record changed.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Indicates the type of medication dispense (for example, drug classification like ATC, where meds would be administered, legal category of the medication.).") - medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication supplied. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="A link to a resource representing the person or the group to whom the medication will be given.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this event.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Additional information that supports the medication being dispensed. For example, there may be requirements that a specific lab test has been completed prior to dispensing or the patient's weight at the time of dispensing is documented.") - performer_field: List[MedicationDispense_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the event.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The principal physical location where the dispense was performed.") - authorizingPrescription_field: List[ReferenceModel] = Field(default_factory=list, alias="authorizingPrescription", description="Indicates the medication order that is being dispensed against.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of medication that has been dispensed. Includes unit of measure.") - daysSupply_field: QuantityModel = Field(default=None, alias="daysSupply", description="The amount of medication expressed as a timing amount.") - recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date (and maybe time) when the dispense activity started if whenPrepared or whenHandedOver is not populated.") - whenPrepared_field: dateTimeModel = Field(default=None, alias="whenPrepared", description="The time when the dispensed product was packaged and reviewed.") - whenHandedOver_field: dateTimeModel = Field(default=None, alias="whenHandedOver", description="The time the dispensed product was provided to the patient or their representative.") - destination_field: ReferenceModel = Field(default=None, alias="destination", description="Identification of the facility/location where the medication was/will be shipped to, as part of the dispense event.") - receiver_field: List[ReferenceModel] = Field(default_factory=list, alias="receiver", description="Identifies the person who picked up the medication or the location of where the medication was delivered. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professional or a location.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the dispense that could not be conveyed in the other attributes.") - renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") - dosageInstruction_field: List[DosageModel] = Field(default_factory=list, alias="dosageInstruction", description="Indicates how the medication is to be used by the patient.") - substitution_field: MedicationDispense_SubstitutionModel = Field(default=None, alias="substitution", description="Indicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not done.") - eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="A summary of the events of interest that have occurred, such as when the dispense was verified.") - -class MedicationDispense_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication.") - -class MedicationDispense_SubstitutionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - wasSubstituted_field: booleanModel = Field(default=None, alias="wasSubstituted", description="True if the dispenser dispensed a different drug or product from what was prescribed.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code signifying whether a different drug was dispensed from what was prescribed.") - reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="Indicates the reason for the substitution (or lack of substitution) from what was prescribed.") - responsibleParty_field: ReferenceModel = Field(default=None, alias="responsibleParty", description="The person or organization that has primary responsibility for the substitution.") - -class MedicationKnowledgeModel(BaseModel): - resourceType_field: str = "MedicationKnowledge" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this {{title}} when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this {{title}} is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the {{title}} is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this medication.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the {{title}} when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the {{title}} author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence without additional knowledge. (See the versionAlgorithm element.)") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: List[stringModel] = Field(default_factory=list, alias="name", description="All of the names for a medication, for example, the name(s) given to a medication in different countries. For example, acetaminophen and paracetamol or salbutamol and albuterol.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the {{title}}.") - status_field: codeModel = Field(default=None, alias="status", description="A code to indicate if the medication referred to by this MedicationKnowledge is in active use within the drug database or inventory system. The status refers to the validity about the information of the medication and not to its medicinal properties.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this {{title}} is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the {{title}} was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the {{title}} changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the {{title}}.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the {{title}} from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate {{title}}s.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the {{title}} is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this {{title}} is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the {{title}} and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the {{title}}.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the {{title}} content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: ReferenceModel = Field(default=None, alias="author", description="The creator or owner of the knowledge or information about the medication.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that specifies this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.") - intendedJurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="intendedJurisdiction", description="Lists the jurisdictions that this medication knowledge was written for.") - relatedMedicationKnowledge_field: List[MedicationKnowledge_RelatedMedicationKnowledgeModel] = Field(default_factory=list, alias="relatedMedicationKnowledge", description="Associated or related medications. For example, if the medication is a branded product (e.g. Crestor), this is the Therapeutic Moeity (e.g. Rosuvastatin) or if this is a generic medication (e.g. Rosuvastatin), this would link to a branded product (e.g. Crestor.") - associatedMedication_field: List[ReferenceModel] = Field(default_factory=list, alias="associatedMedication", description="Links to associated medications that could be prescribed, dispensed or administered.") - productType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="productType", description="Category of the medication or product (e.g. branded product, therapeutic moeity, generic product, innovator product, etc.).") - monograph_field: List[MedicationKnowledge_MonographModel] = Field(default_factory=list, alias="monograph", description="Associated documentation about the medication.") - preparationInstruction_field: markdownModel = Field(default=None, alias="preparationInstruction", description="The instructions for preparing the medication.") - cost_field: List[MedicationKnowledge_CostModel] = Field(default_factory=list, alias="cost", description="The price of the medication.") - monitoringProgram_field: List[MedicationKnowledge_MonitoringProgramModel] = Field(default_factory=list, alias="monitoringProgram", description="The program under which the medication is reviewed.") - indicationGuideline_field: List[MedicationKnowledge_IndicationGuidelineModel] = Field(default_factory=list, alias="indicationGuideline", description="Guidelines or protocols that are applicable for the administration of the medication based on indication.") - medicineClassification_field: List[MedicationKnowledge_MedicineClassificationModel] = Field(default_factory=list, alias="medicineClassification", description="Categorization of the medication within a formulary or classification system.") - packaging_field: List[MedicationKnowledge_PackagingModel] = Field(default_factory=list, alias="packaging", description="Information that only applies to packages (not products).") - clinicalUseIssue_field: List[ReferenceModel] = Field(default_factory=list, alias="clinicalUseIssue", description="Potential clinical issue with or between medication(s) (for example, drug-drug interaction, drug-disease contraindication, drug-allergy interaction, etc.).") - storageGuideline_field: List[MedicationKnowledge_StorageGuidelineModel] = Field(default_factory=list, alias="storageGuideline", description="Information on how the medication should be stored, for example, refrigeration temperatures and length of stability at a given temperature.") - regulatory_field: List[MedicationKnowledge_RegulatoryModel] = Field(default_factory=list, alias="regulatory", description="Regulatory information about a medication.") - definitional_field: MedicationKnowledge_DefinitionalModel = Field(default=None, alias="definitional", description="Along with the link to a Medicinal Product Definition resource, this information provides common definitional elements that are needed to understand the specific medication that is being described.") - -class MedicationKnowledge_RelatedMedicationKnowledgeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of the associated medication knowledge reference.") - reference_field: List[ReferenceModel] = Field(default_factory=list, alias="reference", description="Associated documentation about the associated medication knowledge.") - -class MedicationKnowledge_MonographModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of documentation about the medication. (e.g. professional monograph, patient education monograph).") - source_field: ReferenceModel = Field(default=None, alias="source", description="Associated documentation about the medication.") - -class MedicationKnowledge_CostModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - effectiveDate_field: List[PeriodModel] = Field(default_factory=list, alias="effectiveDate", description="The date range for which the cost information of the medication is effective.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The category of the cost information. For example, manufacturers' cost, patient cost, claim reimbursement cost, actual acquisition cost.") - source_field: stringModel = Field(default=None, alias="source", description="The source or owner that assigns the price to the medication.") - costMoney_field: MoneyModel = Field(default=None, alias="costMoney", description="The price or representation of the cost (for example, Band A, Band B or $, $$) of the medication.") - costCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="costCodeableConcept", description="The price or representation of the cost (for example, Band A, Band B or $, $$) of the medication.") - -class MedicationKnowledge_MonitoringProgramModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of program under which the medication is monitored.") - name_field: stringModel = Field(default=None, alias="name", description="Name of the reviewing program.") - -class MedicationKnowledge_IndicationGuidelineModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - indication_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="indication", description="Indication or reason for use of the medication that applies to the specific administration guideline.") - dosingGuideline_field: List[MedicationKnowledge_DosingGuidelineModel] = Field(default_factory=list, alias="dosingGuideline", description="The guidelines for the dosage of the medication for the indication.") - -class MedicationKnowledge_DosingGuidelineModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - treatmentIntent_field: CodeableConceptModel = Field(default=None, alias="treatmentIntent", description="The overall intention of the treatment, for example, prophylactic, supporative, curative, etc.") - dosage_field: List[MedicationKnowledge_DosageModel] = Field(default_factory=list, alias="dosage", description="Dosage for the medication for the specific guidelines.") - administrationTreatment_field: CodeableConceptModel = Field(default=None, alias="administrationTreatment", description="The type of the treatment that the guideline applies to, for example, long term therapy, first line treatment, etc.") - patientCharacteristic_field: List[MedicationKnowledge_PatientCharacteristicModel] = Field(default_factory=list, alias="patientCharacteristic", description="Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.).") - -class MedicationKnowledge_DosageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type or category of dosage for a given medication (for example, prophylaxis, maintenance, therapeutic, etc.).") - dosage_field: List[DosageModel] = Field(default_factory=list, alias="dosage", description="Dosage for the medication for the specific guidelines.") - -class MedicationKnowledge_PatientCharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The categorization of the specific characteristic that is relevant to the administration guideline (e.g. height, weight, gender).") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The specific characteristic (e.g. height, weight, gender, etc.).") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The specific characteristic (e.g. height, weight, gender, etc.).") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The specific characteristic (e.g. height, weight, gender, etc.).") - -class MedicationKnowledge_MedicineClassificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification).") - classification_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classification", description="Specific category assigned to the medication (e.g. anti-infective, anti-hypertensive, antibiotic, etc.).") - -class MedicationKnowledge_PackagingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - cost_field: List[MedicationKnowledge_CostModel] = Field(default_factory=list, alias="cost", description="The cost of the packaged medication.") - packagedProduct_field: ReferenceModel = Field(default=None, alias="packagedProduct", description="A reference to a PackagedProductDefinition that provides the details of the product that is in the packaging and is being priced.") - -class MedicationKnowledge_StorageGuidelineModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - reference_field: uriModel = Field(default=None, alias="reference", description="Reference to additional information about the storage guidelines.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional notes about the storage.") - stabilityDuration_field: DurationModel = Field(default=None, alias="stabilityDuration", description="Duration that the medication remains stable if the environmentalSetting is respected.") - environmentalSetting_field: List[MedicationKnowledge_EnvironmentalSettingModel] = Field(default_factory=list, alias="environmentalSetting", description="Describes a setting/value on the environment for the adequate storage of the medication and other substances. Environment settings may involve temperature, humidity, or exposure to light.") - -class MedicationKnowledge_EnvironmentalSettingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifies the category or type of setting (e.g., type of location, temperature, humidity).") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Value associated to the setting. E.g., 40° – 50°F for temperature.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Value associated to the setting. E.g., 40° – 50°F for temperature.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Value associated to the setting. E.g., 40° – 50°F for temperature.") - -class MedicationKnowledge_RegulatoryModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - regulatoryAuthority_field: ReferenceModel = Field(default=None, alias="regulatoryAuthority", description="The authority that is specifying the regulations.") - substitution_field: List[MedicationKnowledge_SubstitutionModel] = Field(default_factory=list, alias="substitution", description="Specifies if changes are allowed when dispensing a medication from a regulatory perspective.") - schedule_field: List[CodeableConceptModel] = Field(default_factory=list, alias="schedule", description="Specifies the schedule of a medication in jurisdiction.") - maxDispense_field: MedicationKnowledge_MaxDispenseModel = Field(default=None, alias="maxDispense", description="The maximum number of units of the medication that can be dispensed in a period.") - -class MedicationKnowledge_SubstitutionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Specifies the type of substitution allowed.") - allowed_field: booleanModel = Field(default=None, alias="allowed", description="Specifies if regulation allows for changes in the medication when dispensing.") - -class MedicationKnowledge_MaxDispenseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The maximum number of units of the medication that can be dispensed.") - period_field: DurationModel = Field(default=None, alias="period", description="The period that applies to the maximum number of units.") - -class MedicationKnowledge_DefinitionalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - definition_field: List[ReferenceModel] = Field(default_factory=list, alias="definition", description="Associated definitions for this medication.") - doseForm_field: CodeableConceptModel = Field(default=None, alias="doseForm", description="Describes the form of the item. Powder; tablets; capsule.") - intendedRoute_field: List[CodeableConceptModel] = Field(default_factory=list, alias="intendedRoute", description="The intended or approved route of administration.") - ingredient_field: List[MedicationKnowledge_IngredientModel] = Field(default_factory=list, alias="ingredient", description="Identifies a particular constituent of interest in the product.") - drugCharacteristic_field: List[MedicationKnowledge_DrugCharacteristicModel] = Field(default_factory=list, alias="drugCharacteristic", description="Specifies descriptive properties of the medicine, such as color, shape, imprints, etc.") - -class MedicationKnowledge_IngredientModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="A reference to the resource that provides information about the ingredient.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indication of whether this ingredient affects the therapeutic action of the drug.") - strengthRatio_field: RatioModel = Field(default=None, alias="strengthRatio", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") - strengthCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="strengthCodeableConcept", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") - strengthQuantity_field: QuantityModel = Field(default=None, alias="strengthQuantity", description="Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet but can also be expressed a quantity when the denominator is assumed to be 1 tablet.") - -class MedicationKnowledge_DrugCharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code specifying which characteristic of the medicine is being described (for example, colour, shape, imprint).") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Description of the characteristic.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Description of the characteristic.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Description of the characteristic.") - -class MedicationRequestModel(BaseModel): - resourceType_field: str = "MedicationRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan or request that is fulfilled in whole or in part by this medication request.") - priorPrescription_field: ReferenceModel = Field(default=None, alias="priorPrescription", description="Reference to an order/prescription that is being replaced by this MedicationRequest.") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the current state of the order. Generally, this will be active or completed state.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the MedicationRequest.") - statusChanged_field: dateTimeModel = Field(default=None, alias="statusChanged", description="The date (and perhaps time) when the status was changed.") - intent_field: codeModel = Field(default=None, alias="intent", description="Whether the request is a proposal, plan, or an original order.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="An arbitrary categorization or grouping of the medication request. It could be used for indicating where meds are intended to be administered, eg. in an inpatient setting or in a patient's home, or a legal category of the medication.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Medication Request should be addressed with respect to other requests.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true, indicates that the provider is asking for the patient to either stop taking or to not start taking the specified medication. For example, the patient is taking an existing medication and the provider is changing their medication. They want to create two seperate requests: one to stop using the current medication and another to start the new medication.") - medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The individual or group for whom the medication has been requested.") - informationSource_field: List[ReferenceModel] = Field(default_factory=list, alias="informationSource", description="The person or organization who provided the information about this request, if the source is someone other than the requestor. This is often used when the MedicationRequest is reported by another person.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this [x] was created or to which the creation of this record is tightly associated.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Information to support fulfilling (i.e. dispensing or administering) of the medication, for example, patient height and weight, a MedicationStatement for the patient).") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="The date (and perhaps time) when the prescription was initially written or authored on.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The individual, organization, or device that initiated the request and has responsibility for its activation.") - reported_field: booleanModel = Field(default=None, alias="reported", description="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.") - performerType_field: CodeableConceptModel = Field(default=None, alias="performerType", description="Indicates the type of performer of the administration of the medication.") - performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="The specified desired performer of the medication treatment (e.g. the performer of the medication administration). For devices, this is the device that is intended to perform the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.") - device_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="device", description="The intended type of device that is to be used for the administration of the medication (for example, PCA Pump).") - recorder_field: ReferenceModel = Field(default=None, alias="recorder", description="The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason or the indication for ordering or not ordering the medication.") - courseOfTherapyType_field: CodeableConceptModel = Field(default=None, alias="courseOfTherapyType", description="The description of the overall pattern of the administration of the medication to the patient.") - insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the prescription that could not be conveyed by the other attributes.") - renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") - effectiveDosePeriod_field: PeriodModel = Field(default=None, alias="effectiveDosePeriod", description="The period over which the medication is to be taken. Where there are multiple dosageInstruction lines (for example, tapering doses), this is the earliest date and the latest end date of the dosageInstructions.") - dosageInstruction_field: List[DosageModel] = Field(default_factory=list, alias="dosageInstruction", description="Specific instructions for how the medication is to be used by the patient.") - dispenseRequest_field: MedicationRequest_DispenseRequestModel = Field(default=None, alias="dispenseRequest", description="Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department.") - substitution_field: MedicationRequest_SubstitutionModel = Field(default=None, alias="substitution", description="Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done.") - eventHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="eventHistory", description="Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.") - -class MedicationRequest_DispenseRequestModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - initialFill_field: MedicationRequest_InitialFillModel = Field(default=None, alias="initialFill", description="Indicates the quantity or duration for the first dispense of the medication.") - dispenseInterval_field: DurationModel = Field(default=None, alias="dispenseInterval", description="The minimum period of time that must occur between dispenses of the medication.") - validityPeriod_field: PeriodModel = Field(default=None, alias="validityPeriod", description="This indicates the validity period of a prescription (stale dating the Prescription).") - numberOfRepeatsAllowed_field: unsignedIntModel = Field(default=None, alias="numberOfRepeatsAllowed", description="An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus 3 repeats, then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount that is to be dispensed for one fill.") - expectedSupplyDuration_field: DurationModel = Field(default=None, alias="expectedSupplyDuration", description="Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last.") - dispenser_field: ReferenceModel = Field(default=None, alias="dispenser", description="Indicates the intended performing Organization that will dispense the medication as specified by the prescriber.") - dispenserInstruction_field: List[AnnotationModel] = Field(default_factory=list, alias="dispenserInstruction", description="Provides additional information to the dispenser, for example, counselling to be provided to the patient.") - doseAdministrationAid_field: CodeableConceptModel = Field(default=None, alias="doseAdministrationAid", description="Provides information about the type of adherence packaging to be supplied for the medication dispense.") - -class MedicationRequest_InitialFillModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount or quantity to provide as part of the first dispense.") - duration_field: DurationModel = Field(default=None, alias="duration", description="The length of time that the first dispense is expected to last.") - -class MedicationRequest_SubstitutionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - allowedCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="allowedCodeableConcept", description="True if the prescriber allows a different drug to be dispensed from what was prescribed.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Indicates the reason for the substitution, or why substitution must or must not be performed.") - -class MedicationStatementModel(BaseModel): - resourceType_field: str = "MedicationStatement" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Medication Statement that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular MedicationStatement is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="A code representing the status of recording the medication statement.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Type of medication statement (for example, drug classification like ATC, where meds would be administered, legal category of the medication.).") - medication_field: CodeableReferenceModel = Field(default=None, alias="medication", description="Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person, animal or group who is/was taking the medication.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this MedicationStatement.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The interval of time during which it is being asserted that the patient is/was/will be taking the medication (or was not taking, when the MedicationStatement.adherence element is Not Taking).") - effectiveTiming_field: TimingModel = Field(default=None, alias="effectiveTiming", description="The interval of time during which it is being asserted that the patient is/was/will be taking the medication (or was not taking, when the MedicationStatement.adherence element is Not Taking).") - dateAsserted_field: dateTimeModel = Field(default=None, alias="dateAsserted", description="The date when the Medication Statement was asserted by the information source.") - informationSource_field: List[ReferenceModel] = Field(default_factory=list, alias="informationSource", description="The person or organization that provided the information about the taking of this medication. Note: Use derivedFrom when a MedicationStatement is derived from other resources, e.g. Claim or MedicationRequest.") - derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="Allows linking the MedicationStatement to the underlying MedicationRequest, or to other information that supports or is used to derive the MedicationStatement.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A concept, Condition or observation that supports why the medication is being/was taken.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides extra information about the Medication Statement that is not conveyed by the other attributes.") - relatedClinicalInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="relatedClinicalInformation", description="Link to information that is relevant to a medication statement, for example, illicit drug use, gestational age, etc.") - renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") - dosage_field: List[DosageModel] = Field(default_factory=list, alias="dosage", description="Indicates how the medication is/was or should be taken by the patient.") - adherence_field: MedicationStatement_AdherenceModel = Field(default=None, alias="adherence", description="Indicates whether the medication is or is not being consumed or administered.") - -class MedicationStatement_AdherenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Type of the adherence for the medication.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Captures the reason for the current use or adherence of a medication.") - -class MedicinalProductDefinitionModel(BaseModel): - resourceType_field: str = "MedicinalProductDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for this product. Could be an MPID. When in development or being regulated, products are typically referenced by official identifiers, assigned by a manufacturer or regulator, and unique to a product (which, when compared to a product instance being prescribed, is actually a product type). See also MedicinalProductDefinition.code.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Regulatory type, e.g. Investigational or Authorized.") - domain_field: CodeableConceptModel = Field(default=None, alias="domain", description="If this medicine applies to human or veterinary uses.") - version_field: stringModel = Field(default=None, alias="version", description="A business identifier relating to a specific version of the product, this is commonly used to support revisions to an existing product.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status within the lifecycle of this product record. A high-level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization status.") - statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the given status became applicable.") - description_field: markdownModel = Field(default=None, alias="description", description="General description of this product.") - combinedPharmaceuticalDoseForm_field: CodeableConceptModel = Field(default=None, alias="combinedPharmaceuticalDoseForm", description="The dose form for a single part product, or combined form of a multiple part product. This is one concept that describes all the components. It does not represent the form with components physically mixed, if that might be necessary, for which see (AdministrableProductDefinition.administrableDoseForm).") - route_field: List[CodeableConceptModel] = Field(default_factory=list, alias="route", description="The path by which the product is taken into or makes contact with the body. In some regions this is referred to as the licenced or approved route. See also AdministrableProductDefinition resource. MedicinalProductDefinition.route is the same concept as AdministrableProductDefinition.routeOfAdministration.code, and they cannot be used together.") - indication_field: markdownModel = Field(default=None, alias="indication", description="Description of indication(s) for this product, used when structured indications are not required. In cases where structured indications are required, they are captured using the ClinicalUseDefinition resource. An indication is a medical situation for which using the product is appropriate.") - legalStatusOfSupply_field: CodeableConceptModel = Field(default=None, alias="legalStatusOfSupply", description="The legal status of supply of the medicinal product as classified by the regulator.") - additionalMonitoringIndicator_field: CodeableConceptModel = Field(default=None, alias="additionalMonitoringIndicator", description="Whether the Medicinal Product is subject to additional monitoring for regulatory reasons, such as heightened reporting requirements.") - specialMeasures_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialMeasures", description="Whether the Medicinal Product is subject to special measures for regulatory reasons, such as a requirement to conduct post-authorization studies.") - pediatricUseIndicator_field: CodeableConceptModel = Field(default=None, alias="pediatricUseIndicator", description="If authorised for use in children, or infants, neonates etc.") - classification_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classification", description="Allows the product to be classified by various systems, commonly WHO ATC.") - marketingStatus_field: List[MarketingStatusModel] = Field(default_factory=list, alias="marketingStatus", description="Marketing status of the medicinal product, in contrast to marketing authorization. This refers to the product being actually 'on the market' as opposed to being allowed to be on the market (which is an authorization).") - packagedMedicinalProduct_field: List[CodeableConceptModel] = Field(default_factory=list, alias="packagedMedicinalProduct", description="Package type for the product. See also the PackagedProductDefinition resource.") - comprisedOf_field: List[ReferenceModel] = Field(default_factory=list, alias="comprisedOf", description="Types of medicinal manufactured items and/or devices that this product consists of, such as tablets, capsule, or syringes. Used as a direct link when the item's packaging is not being recorded (see also PackagedProductDefinition.package.containedItem.item).") - ingredient_field: List[CodeableConceptModel] = Field(default_factory=list, alias="ingredient", description="The ingredients of this medicinal product - when not detailed in other resources. This is only needed if the ingredients are not specified by incoming references from the Ingredient resource, or indirectly via incoming AdministrableProductDefinition, PackagedProductDefinition or ManufacturedItemDefinition references. In cases where those levels of detail are not used, the ingredients may be specified directly here as codes.") - impurity_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="impurity", description="Any component of the drug product which is not the chemical entity defined as the drug substance, or an excipient in the drug product. This includes process-related impurities and contaminants, product-related impurities including degradation products.") - attachedDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="attachedDocument", description="Additional information or supporting documentation about the medicinal product.") - masterFile_field: List[ReferenceModel] = Field(default_factory=list, alias="masterFile", description="A master file for the medicinal product (e.g. Pharmacovigilance System Master File). Drug master files (DMFs) are documents submitted to regulatory agencies to provide confidential detailed information about facilities, processes or articles used in the manufacturing, processing, packaging and storing of drug products.") - contact_field: List[MedicinalProductDefinition_ContactModel] = Field(default_factory=list, alias="contact", description="A product specific contact, person (in a role), or an organization.") - clinicalTrial_field: List[ReferenceModel] = Field(default_factory=list, alias="clinicalTrial", description="Clinical trials or studies that this product is involved in.") - code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="A code that this product is known by, usually within some formal terminology, perhaps assigned by a third party (i.e. not the manufacturer or regulator). Products (types of medications) tend to be known by identifiers during development and within regulatory process. However when they are prescribed they tend to be identified by codes. The same product may be have multiple codes, applied to it by multiple organizations.") - name_field: List[MedicinalProductDefinition_NameModel] = Field(default_factory=list, alias="name", description="The product's name, including full name and possibly coded parts.") - crossReference_field: List[MedicinalProductDefinition_CrossReferenceModel] = Field(default_factory=list, alias="crossReference", description="Reference to another product, e.g. for linking authorised to investigational product, or a virtual product.") - operation_field: List[MedicinalProductDefinition_OperationModel] = Field(default_factory=list, alias="operation", description="A manufacturing or administrative process or step associated with (or performed on) the medicinal product.") - characteristic_field: List[MedicinalProductDefinition_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Allows the key product features to be recorded, such as sugar free, modified release, parallel import.") - -class MedicinalProductDefinition_ContactModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Allows the contact to be classified, for example QPPV, Pharmacovigilance Enquiry Information.") - contact_field: ReferenceModel = Field(default=None, alias="contact", description="A product specific contact, person (in a role), or an organization.") - -class MedicinalProductDefinition_NameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - productName_field: stringModel = Field(default=None, alias="productName", description="The full product name.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of product name, such as rINN, BAN, Proprietary, Non-Proprietary.") - part_field: List[MedicinalProductDefinition_PartModel] = Field(default_factory=list, alias="part", description="Coding words or phrases of the name.") - usage_field: List[MedicinalProductDefinition_UsageModel] = Field(default_factory=list, alias="usage", description="Country and jurisdiction where the name applies, and associated language.") - -class MedicinalProductDefinition_PartModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - part_field: stringModel = Field(default=None, alias="part", description="A fragment of a product name.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifying type for this part of the name (e.g. strength part).") - -class MedicinalProductDefinition_UsageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - country_field: CodeableConceptModel = Field(default=None, alias="country", description="Country code for where this name applies.") - jurisdiction_field: CodeableConceptModel = Field(default=None, alias="jurisdiction", description="Jurisdiction code for where this name applies. A jurisdiction may be a sub- or supra-national entity (e.g. a state or a geographic region).") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="Language code for this name.") - -class MedicinalProductDefinition_CrossReferenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - product_field: CodeableReferenceModel = Field(default=None, alias="product", description="Reference to another product, e.g. for linking authorised to investigational product.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of relationship, for instance branded to generic, virtual to actual product, product to development product (investigational), parallel import version.") - -class MedicinalProductDefinition_OperationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableReferenceModel = Field(default=None, alias="type", description="The type of manufacturing operation e.g. manufacturing itself, re-packaging. For the authorization of this, a RegulatedAuthorization would point to the same plan or activity referenced here.") - effectiveDate_field: PeriodModel = Field(default=None, alias="effectiveDate", description="Date range of applicability.") - organization_field: List[ReferenceModel] = Field(default_factory=list, alias="organization", description="The organization or establishment responsible for (or associated with) the particular process or step, examples include the manufacturer, importer, agent.") - confidentialityIndicator_field: CodeableConceptModel = Field(default=None, alias="confidentialityIndicator", description="Specifies whether this particular business or manufacturing process is considered proprietary or confidential.") - -class MedicinalProductDefinition_CharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.text.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.text.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.text.") - -class MessageDefinitionModel(BaseModel): - resourceType_field: str = "MessageDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="The business identifier that is used to reference the MessageDefinition and *is* expected to be consistent from server to server.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this message definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the message definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the message definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the message definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the message definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this message definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this message definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the message definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the message definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the message definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the message definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate message definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the message definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this message definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the message definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the message definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - replaces_field: List[canonicalModel] = Field(default_factory=list, alias="replaces", description="A MessageDefinition that is superseded by this definition.") - base_field: canonicalModel = Field(default=None, alias="base", description="The MessageDefinition that is the basis for the contents of this resource.") - parent_field: List[canonicalModel] = Field(default_factory=list, alias="parent", description="Identifies a protocol or workflow that this MessageDefinition represents a step in.") - eventCoding_field: CodingModel = Field(default=None, alias="eventCoding", description="Event code or link to the EventDefinition.") - category_field: codeModel = Field(default=None, alias="category", description="The impact of the content of the message.") - focus_field: List[MessageDefinition_FocusModel] = Field(default_factory=list, alias="focus", description="Identifies the resource (or resources) that are being addressed by the event. For example, the Encounter for an admit message or two Account records for a merge.") - responseRequired_field: codeModel = Field(default=None, alias="responseRequired", description="Declare at a message definition level whether a response is required or only upon error or success, or never.") - allowedResponse_field: List[MessageDefinition_AllowedResponseModel] = Field(default_factory=list, alias="allowedResponse", description="Indicates what types of messages may be sent as an application-level response to this message.") - graph_field: canonicalModel = Field(default=None, alias="graph", description="Graph is Canonical reference to a GraphDefinition. If a URL is provided, it is the canonical reference to a GraphDefinition that it controls what additional resources are to be added to the Bundle when building the message. The GraphDefinition can also specify profiles that apply to the various resources.") - -class MessageDefinition_FocusModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="The kind of resource that must be the focus for this message.") - profile_field: canonicalModel = Field(default=None, alias="profile", description="A profile that reflects constraints for the focal resource (and potentially for related resources).") - min_field: unsignedIntModel = Field(default=None, alias="min", description="Identifies the minimum number of resources of this type that must be pointed to by a message in order for it to be valid against this MessageDefinition.") - max_field: stringModel = Field(default=None, alias="max", description="Identifies the maximum number of resources of this type that must be pointed to by a message in order for it to be valid against this MessageDefinition.") - -class MessageDefinition_AllowedResponseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - message_field: canonicalModel = Field(default=None, alias="message", description="A reference to the message definition that must be adhered to by this supported response.") - situation_field: markdownModel = Field(default=None, alias="situation", description="Provides a description of the circumstances in which this response should be used (as opposed to one of the alternative responses).") - -class MessageHeaderModel(BaseModel): - resourceType_field: str = "MessageHeader" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - eventCoding_field: CodingModel = Field(default=None, alias="eventCoding", description="Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification are defined by the implementation. Alternatively a canonical uri to the EventDefinition.") - destination_field: List[MessageHeader_DestinationModel] = Field(default_factory=list, alias="destination", description="The destination application which the message is intended for.") - sender_field: ReferenceModel = Field(default=None, alias="sender", description="Identifies the sending system to allow the use of a trust relationship.") - author_field: ReferenceModel = Field(default=None, alias="author", description="The logical author of the message - the personor device that decided the described event should happen. When there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions.") - source_field: MessageHeader_SourceModel = Field(default=None, alias="source", description="The source application from which this message originated.") - responsible_field: ReferenceModel = Field(default=None, alias="responsible", description="The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message.") - response_field: MessageHeader_ResponseModel = Field(default=None, alias="response", description="Information about the message that this message is a response to. Only present if this message is a response.") - focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual data of the message - a reference to the root/focus class of the event. This is allowed to be a Parameters resource.") - definition_field: canonicalModel = Field(default=None, alias="definition", description="Permanent link to the MessageDefinition for this message.") - -class MessageHeader_DestinationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - endpointReference_field: ReferenceModel = Field(default=None, alias="endpointReference", description="Indicates where the message should be routed.") - name_field: stringModel = Field(default=None, alias="name", description="Human-readable name for the target system.") - target_field: ReferenceModel = Field(default=None, alias="target", description="Identifies the target end system in situations where the initial message transmission is to an intermediary system.") - receiver_field: ReferenceModel = Field(default=None, alias="receiver", description="Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient.") - -class MessageHeader_SourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - endpointReference_field: ReferenceModel = Field(default=None, alias="endpointReference", description="Identifies the routing target to send acknowledgements to.") - name_field: stringModel = Field(default=None, alias="name", description="Human-readable name for the source system.") - software_field: stringModel = Field(default=None, alias="software", description="May include configuration or other information useful in debugging.") - version_field: stringModel = Field(default=None, alias="version", description="Can convey versions of multiple systems in situations where a message passes through multiple hands.") - contact_field: ContactPointModel = Field(default=None, alias="contact", description="An e-mail, phone, website or other contact point to use to resolve issues with message communications.") - -class MessageHeader_ResponseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The Bundle.identifier of the message to which this message is a response.") - code_field: codeModel = Field(default=None, alias="code", description="Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not.") - details_field: ReferenceModel = Field(default=None, alias="details", description="Full details of any issues found in the message.") - -class MolecularSequenceModel(BaseModel): - resourceType_field: str = "MolecularSequence" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier for this particular sequence instance.") - type_field: codeModel = Field(default=None, alias="type", description="Amino Acid Sequence/ DNA Sequence / RNA Sequence.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Indicates the subject this sequence is associated too.") - focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of a molecular sequence when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, child, or sibling. For example, in trio testing, the subject would be the child (proband) and the focus would be the parent.") - specimen_field: ReferenceModel = Field(default=None, alias="specimen", description="Specimen used for sequencing.") - device_field: ReferenceModel = Field(default=None, alias="device", description="The method for sequencing, for example, chip information.") - performer_field: ReferenceModel = Field(default=None, alias="performer", description="The organization or lab that should be responsible for this result.") - literal_field: stringModel = Field(default=None, alias="literal", description="Sequence that was observed.") - formatted_field: List[AttachmentModel] = Field(default_factory=list, alias="formatted", description="Sequence that was observed as file content. Can be an actual file contents, or referenced by a URL to an external system.") - relative_field: List[MolecularSequence_RelativeModel] = Field(default_factory=list, alias="relative", description="A sequence defined relative to another sequence.") - -class MolecularSequence_RelativeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - coordinateSystem_field: CodeableConceptModel = Field(default=None, alias="coordinateSystem", description="These are different ways of identifying nucleotides or amino acids within a sequence. Different databases and file types may use different systems. For detail definitions, see https://loinc.org/92822-6/ for more detail.") - ordinalPosition_field: integerModel = Field(default=None, alias="ordinalPosition", description="Indicates the order in which the sequence should be considered when putting multiple 'relative' elements together.") - sequenceRange_field: RangeModel = Field(default=None, alias="sequenceRange", description="Indicates the nucleotide range in the composed sequence when multiple 'relative' elements are used together.") - startingSequence_field: MolecularSequence_StartingSequenceModel = Field(default=None, alias="startingSequence", description="A sequence that is used as a starting sequence to describe variants that are present in a sequence analyzed.") - edit_field: List[MolecularSequence_EditModel] = Field(default_factory=list, alias="edit", description="Changes in sequence from the starting sequence.") - -class MolecularSequence_StartingSequenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - genomeAssembly_field: CodeableConceptModel = Field(default=None, alias="genomeAssembly", description="The genome assembly used for starting sequence, e.g. GRCh38.") - chromosome_field: CodeableConceptModel = Field(default=None, alias="chromosome", description="Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)).") - sequenceCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="sequenceCodeableConcept", description="The reference sequence that represents the starting sequence.") - sequenceReference_field: ReferenceModel = Field(default=None, alias="sequenceReference", description="The reference sequence that represents the starting sequence.") - windowStart_field: integerModel = Field(default=None, alias="windowStart", description="Start position of the window on the starting sequence. This value should honor the rules of the coordinateSystem.") - windowEnd_field: integerModel = Field(default=None, alias="windowEnd", description="End position of the window on the starting sequence. This value should honor the rules of the coordinateSystem.") - orientation_field: codeModel = Field(default=None, alias="orientation", description="A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the sense strand, and the opposite complementary strand is the antisense strand.") - strand_field: codeModel = Field(default=None, alias="strand", description="An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm.") - -class MolecularSequence_EditModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - start_field: integerModel = Field(default=None, alias="start", description="Start position of the edit on the starting sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.") - end_field: integerModel = Field(default=None, alias="end", description="End position of the edit on the starting sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.") - replacementSequence_field: stringModel = Field(default=None, alias="replacementSequence", description="Allele that was observed. Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.") - replacedSequence_field: stringModel = Field(default=None, alias="replacedSequence", description="Allele in the starting sequence. Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the starting sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.") - -class NamingSystemModel(BaseModel): - resourceType_field: str = "NamingSystem" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this naming system when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this naming system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the naming system is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this naming system when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the naming system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the naming system author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which NamingSystem is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the naming system.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this naming system. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this naming system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the naming system was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the naming system changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the naming system.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate naming system instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the naming system is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this naming system is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the naming system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the naming system.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the NamingSystem content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the NamingSystem. Topics provide a high-level categorization as well as keywords for the NamingSystem that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the NamingSystem.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the NamingSystem.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the NamingSystem.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the NamingSystem for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - kind_field: codeModel = Field(default=None, alias="kind", description="Indicates the purpose for the naming system - what kinds of things does it make unique?") - responsible_field: stringModel = Field(default=None, alias="responsible", description="The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Categorizes a naming system for easier search by grouping related naming systems.") - usage_field: stringModel = Field(default=None, alias="usage", description="Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.") - uniqueId_field: List[NamingSystem_UniqueIdModel] = Field(default_factory=list, alias="uniqueId", description="Indicates how the system may be identified when referenced in electronic exchange.") - -class NamingSystem_UniqueIdModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="Identifies the unique identifier scheme used for this particular identifier.") - value_field: stringModel = Field(default=None, alias="value", description="The string that should be sent over the wire to identify the code system or identifier system.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether this identifier is the preferred identifier of this type.") - comment_field: stringModel = Field(default=None, alias="comment", description="Notes about the past or intended usage of this identifier.") - period_field: PeriodModel = Field(default=None, alias="period", description="Identifies the period of time over which this identifier is considered appropriate to refer to the naming system. Outside of this window, the identifier might be non-deterministic.") - authoritative_field: booleanModel = Field(default=None, alias="authoritative", description="Indicates whether this identifier ie endorsed by the official owner of the associated naming system.") - -class NutritionIntakeModel(BaseModel): - resourceType_field: str = "NutritionIntake" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers associated with this Nutrition Intake that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="Instantiates FHIR protocol or definition.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="Instantiates external protocol or definition.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this event.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="A code representing the patient or other source's judgment about the state of the intake that this assertion is about. Generally, this will be active or completed.") - statusReason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="statusReason", description="Captures the reason for the current state of the NutritionIntake.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Overall type of nutrition intake.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person, animal or group who is/was consuming the food or fluid.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter that establishes the context for this NutritionIntake.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The interval of time during which it is being asserted that the patient is/was consuming the food or fluid.") - recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date when the Nutrition Intake was asserted by the information source.") - reportedReference_field: ReferenceModel = Field(default=None, alias="reportedReference", description="The person or organization that provided the information about the consumption of this food or fluid. Note: Use derivedFrom when a NutritionIntake is derived from other resources.") - consumedItem_field: List[NutritionIntake_ConsumedItemModel] = Field(default_factory=list, alias="consumedItem", description="What food or fluid product or item was consumed.") - ingredientLabel_field: List[NutritionIntake_IngredientLabelModel] = Field(default_factory=list, alias="ingredientLabel", description="Total nutrient amounts for the whole meal, product, serving, etc.") - performer_field: List[NutritionIntake_PerformerModel] = Field(default_factory=list, alias="performer", description="Who performed the intake and how they were involved.") - location_field: ReferenceModel = Field(default=None, alias="location", description="Where the intake occurred.") - derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="Allows linking the NutritionIntake to the underlying NutritionOrder, or to other information, such as AllergyIntolerance, that supports or is used to derive the NutritionIntake.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A reason, Condition or observation for why the food or fluid is /was consumed.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides extra information about the Nutrition Intake that is not conveyed by the other attributes.") - -class NutritionIntake_ConsumedItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates what a category of item that was consumed: e.g., food, fluid, enteral, etc.") - nutritionProduct_field: CodeableReferenceModel = Field(default=None, alias="nutritionProduct", description="Identifies the food or fluid product that was consumed. This is potentially a link to a resource representing the details of the food product (TBD) or a simple attribute carrying a code that identifies the food from a known list of foods.") - schedule_field: TimingModel = Field(default=None, alias="schedule", description="Scheduled frequency of consumption.") - amount_field: QuantityModel = Field(default=None, alias="amount", description="Quantity of the specified food.") - rate_field: QuantityModel = Field(default=None, alias="rate", description="Rate at which enteral feeding was administered.") - notConsumed_field: booleanModel = Field(default=None, alias="notConsumed", description="Indicator when a patient is in a setting where it is helpful to know if food was not consumed, such as it was refused, held (as in tube feedings), or otherwise not provided. If a consumption is being recorded from an app, such as MyFitnessPal, this indicator will likely not be used.") - notConsumedReason_field: CodeableConceptModel = Field(default=None, alias="notConsumedReason", description="Document the reason the food or fluid was not consumed, such as refused, held, etc.") - -class NutritionIntake_IngredientLabelModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - nutrient_field: CodeableReferenceModel = Field(default=None, alias="nutrient", description="Total nutrient consumed. This could be a macronutrient (protein, fat, carbohydrate), or a vitamin and mineral.") - amount_field: QuantityModel = Field(default=None, alias="amount", description="Total amount of nutrient consumed.") - -class NutritionIntake_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Type of performer.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Who performed the intake.") - -class NutritionOrderModel(BaseModel): - resourceType_field: str = "NutritionOrder" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this order by the order sender or by the order receiver.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder.") - instantiates_field: List[uriModel] = Field(default_factory=list, alias="instantiates", description="The URL pointing to a protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan or request that is fulfilled in whole or in part by this nutrition order.") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to all nutrition orders that were authorized more or less simultaneously by a single author, representing the composite or group identifier.") - status_field: codeModel = Field(default=None, alias="status", description="The workflow status of the nutrition order/request.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the NutrionOrder and where the request fits into the workflow chain.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Nutrition Order should be addressed with respect to other requests.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The person or set of individuals who needs the nutrition order for an oral diet, nutritional supplement and/or enteral or formula feeding.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="An encounter that provides additional information about the healthcare context in which this request is made.") - supportingInformation_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInformation", description="Information to support fulfilling (i.e. dispensing or administering) of the nutrition, for example, patient height and weight).") - dateTime_field: dateTimeModel = Field(default=None, alias="dateTime", description="The date and time that this nutrition order was requested.") - orderer_field: ReferenceModel = Field(default=None, alias="orderer", description="The practitioner that holds legal responsibility for ordering the diet, nutritional supplement, or formula feedings.") - performer_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="performer", description="The specified desired performer of the nutrition order.") - allergyIntolerance_field: List[ReferenceModel] = Field(default_factory=list, alias="allergyIntolerance", description="A link to a record of allergies or intolerances which should be included in the nutrition order.") - foodPreferenceModifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="foodPreferenceModifier", description="This modifier is used to convey order-specific modifiers about the type of food that should be given. These can be derived from patient allergies, intolerances, or preferences such as Halal, Vegan or Kosher. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings.") - excludeFoodModifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="excludeFoodModifier", description="This modifier is used to convey Order-specific modifier about the type of oral food or oral fluids that should not be given. These can be derived from patient allergies, intolerances, or preferences such as No Red Meat, No Soy or No Wheat or Gluten-Free. While it should not be necessary to repeat allergy or intolerance information captured in the referenced AllergyIntolerance resource in the excludeFoodModifier, this element may be used to convey additional specificity related to foods that should be eliminated from the patient’s diet for any reason. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings.") - outsideFoodAllowed_field: booleanModel = Field(default=None, alias="outsideFoodAllowed", description="This modifier is used to convey whether a food item is allowed to be brought in by the patient and/or family. If set to true, indicates that the receiving system does not need to supply the food item.") - oralDiet_field: NutritionOrder_OralDietModel = Field(default=None, alias="oralDiet", description="Diet given orally in contrast to enteral (tube) feeding.") - supplement_field: List[NutritionOrder_SupplementModel] = Field(default_factory=list, alias="supplement", description="Oral nutritional products given in order to add further nutritional value to the patient's diet.") - enteralFormula_field: NutritionOrder_EnteralFormulaModel = Field(default=None, alias="enteralFormula", description="Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the {{title}} by the requester, performer, subject or other participants.") - -class NutritionOrder_OralDietModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind of diet or dietary restriction such as fiber restricted diet or diabetic diet.") - schedule_field: NutritionOrder_ScheduleModel = Field(default=None, alias="schedule", description="Schedule information for an oral diet.") - nutrient_field: List[NutritionOrder_NutrientModel] = Field(default_factory=list, alias="nutrient", description="Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet.") - texture_field: List[NutritionOrder_TextureModel] = Field(default_factory=list, alias="texture", description="Class that describes any texture modifications required for the patient to safely consume various types of solid foods.") - fluidConsistencyType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="fluidConsistencyType", description="The required consistency (e.g. honey-thick, nectar-thick, thin, thickened.) of liquids or fluids served to the patient.") - instruction_field: stringModel = Field(default=None, alias="instruction", description="Free text or additional instructions or information pertaining to the oral diet.") - -class NutritionOrder_ScheduleModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - timing_field: List[TimingModel] = Field(default_factory=list, alias="timing", description="The time period and frequency at which the diet should be given. The diet should be given for the combination of all schedules if more than one schedule is present.") - asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the product is only taken when needed within a specific dosing schedule.") - asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="Indicates whether the product is only taken based on a precondition for taking the product.") - -class NutritionOrder_NutrientModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - modifier_field: CodeableConceptModel = Field(default=None, alias="modifier", description="The nutrient that is being modified such as carbohydrate or sodium.") - amount_field: QuantityModel = Field(default=None, alias="amount", description="The quantity of the specified nutrient to include in diet.") - -class NutritionOrder_TextureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - modifier_field: CodeableConceptModel = Field(default=None, alias="modifier", description="Any texture modifications (for solid foods) that should be made, e.g. easy to chew, chopped, ground, and pureed.") - foodType_field: CodeableConceptModel = Field(default=None, alias="foodType", description="The food type(s) (e.g. meats, all foods) that the texture modification applies to. This could be all foods types.") - -class NutritionOrder_SupplementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableReferenceModel = Field(default=None, alias="type", description="The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement.") - productName_field: stringModel = Field(default=None, alias="productName", description="The product or brand name of the nutritional supplement such as Acme Protein Shake.") - schedule_field: NutritionOrder_Schedule1Model = Field(default=None, alias="schedule", description="Schedule information for a supplement.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of the nutritional supplement to be given.") - instruction_field: stringModel = Field(default=None, alias="instruction", description="Free text or additional instructions or information pertaining to the oral supplement.") - -class NutritionOrder_Schedule1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - timing_field: List[TimingModel] = Field(default_factory=list, alias="timing", description="The time period and frequency at which the supplement should be given. The supplement should be given for the combination of all schedules if more than one schedule is present.") - asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the supplement is only taken when needed within a specific dosing schedule.") - asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="Indicates whether the supplement is only taken based on a precondition for taking the supplement.") - -class NutritionOrder_EnteralFormulaModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - baseFormulaType_field: CodeableReferenceModel = Field(default=None, alias="baseFormulaType", description="The type of enteral or infant formula such as an adult standard formula with fiber or a soy-based infant formula.") - baseFormulaProductName_field: stringModel = Field(default=None, alias="baseFormulaProductName", description="The product or brand name of the enteral or infant formula product such as ACME Adult Standard Formula.") - deliveryDevice_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="deliveryDevice", description="The intended type of device that is to be used for the administration of the enteral formula.") - additive_field: List[NutritionOrder_AdditiveModel] = Field(default_factory=list, alias="additive", description="Indicates modular components to be provided in addition or mixed with the base formula.") - caloricDensity_field: QuantityModel = Field(default=None, alias="caloricDensity", description="The amount of energy (calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula that provides 24 calories per fluid ounce or an adult may require an enteral formula that provides 1.5 calorie/mL.") - routeOfAdministration_field: CodeableConceptModel = Field(default=None, alias="routeOfAdministration", description="The route or physiological path of administration into the patient's gastrointestinal tract for purposes of providing the formula feeding, e.g. nasogastric tube.") - administration_field: List[NutritionOrder_AdministrationModel] = Field(default_factory=list, alias="administration", description="Formula administration instructions as structured data. This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding. An example of this would be an instruction to increase the rate of continuous feeding every 2 hours.") - maxVolumeToDeliver_field: QuantityModel = Field(default=None, alias="maxVolumeToDeliver", description="The maximum total quantity of formula that may be administered to a subject over the period of time, e.g. 1440 mL over 24 hours.") - administrationInstruction_field: markdownModel = Field(default=None, alias="administrationInstruction", description="Free text formula administration, feeding instructions or additional instructions or information.") - -class NutritionOrder_AdditiveModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableReferenceModel = Field(default=None, alias="type", description="Indicates the type of modular component such as protein, carbohydrate, fat or fiber to be provided in addition to or mixed with the base formula.") - productName_field: stringModel = Field(default=None, alias="productName", description="The product or brand name of the type of modular component to be added to the formula.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of additive to be given in addition or to be mixed in with the base formula.") - -class NutritionOrder_AdministrationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - schedule_field: NutritionOrder_Schedule2Model = Field(default=None, alias="schedule", description="Schedule information for an enteral formula.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The volume of formula to provide to the patient per the specified administration schedule.") - rateQuantity_field: QuantityModel = Field(default=None, alias="rateQuantity", description="The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule.") - rateRatio_field: RatioModel = Field(default=None, alias="rateRatio", description="The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule.") - -class NutritionOrder_Schedule2Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - timing_field: List[TimingModel] = Field(default_factory=list, alias="timing", description="The time period and frequency at which the enteral formula should be given. The enteral formula should be given for the combination of all schedules if more than one schedule is present.") - asNeeded_field: booleanModel = Field(default=None, alias="asNeeded", description="Indicates whether the enteral formula is only taken when needed within a specific dosing schedule.") - asNeededFor_field: CodeableConceptModel = Field(default=None, alias="asNeededFor", description="Indicates whether the enteral formula is only taken based on a precondition for taking the enteral formula.") - -class NutritionProductModel(BaseModel): - resourceType_field: str = "NutritionProduct" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The code assigned to the product, for example a USDA NDB number, a USDA FDC ID number, or a Langual code.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the product.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="Nutrition products can have different classifications - according to its nutritional properties, preparation methods, etc.") - manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="The organisation (manufacturer, representative or legal authorization holder) that is responsible for the device.") - nutrient_field: List[NutritionProduct_NutrientModel] = Field(default_factory=list, alias="nutrient", description="The product's nutritional information expressed by the nutrients.") - ingredient_field: List[NutritionProduct_IngredientModel] = Field(default_factory=list, alias="ingredient", description="Ingredients contained in this product.") - knownAllergen_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="knownAllergen", description="Allergens that are known or suspected to be a part of this nutrition product.") - characteristic_field: List[NutritionProduct_CharacteristicModel] = Field(default_factory=list, alias="characteristic", description="Specifies descriptive properties of the nutrition product.") - instance_field: List[NutritionProduct_InstanceModel] = Field(default_factory=list, alias="instance", description="Conveys instance-level information about this product item. One or several physical, countable instances or occurrences of the product.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the product.") - -class NutritionProduct_NutrientModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The (relevant) nutrients in the product.") - amount_field: List[RatioModel] = Field(default_factory=list, alias="amount", description="The amount of nutrient expressed in one or more units: X per pack / per serving / per dose.") - -class NutritionProduct_IngredientModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The ingredient contained in the product.") - amount_field: List[RatioModel] = Field(default_factory=list, alias="amount", description="The amount of ingredient that is in the product.") - -class NutritionProduct_CharacteristicModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code specifying which characteristic of the product is being described (for example, colour, shape).") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The actual characteristic value corresponding to the type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The actual characteristic value corresponding to the type.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The actual characteristic value corresponding to the type.") - -class NutritionProduct_InstanceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of items or instances that the resource considers, for instance when referring to 2 identical units together.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The identifier for the physical instance, typically a serial number or manufacturer number.") - name_field: stringModel = Field(default=None, alias="name", description="The name for the specific product.") - lotNumber_field: stringModel = Field(default=None, alias="lotNumber", description="The identification of the batch or lot of the product.") - expiry_field: dateTimeModel = Field(default=None, alias="expiry", description="The time after which the product is no longer expected to be in proper condition, or its use is not advised or not allowed.") - useBy_field: dateTimeModel = Field(default=None, alias="useBy", description="The time after which the product is no longer expected to be in proper condition, or its use is not advised or not allowed.") - biologicalSourceEvent_field: IdentifierModel = Field(default=None, alias="biologicalSourceEvent", description="An identifier that supports traceability to the event during which material in this product from one or more biological entities was obtained or pooled.") - -class ObservationModel(BaseModel): - resourceType_field: str = "Observation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this observation.") - instantiatesReference_field: ReferenceModel = Field(default=None, alias="instantiatesReference", description="The reference to a FHIR ObservationDefinition resource that provides the definition that is adhered to in whole or in part by this Observation instance.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed.") - triggeredBy_field: List[Observation_TriggeredByModel] = Field(default_factory=list, alias="triggeredBy", description="Identifies the observation(s) that triggered the performance of this observation.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the result value.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of observation being made.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what was observed. Sometimes this is called the observation name.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient, or group of patients, location, device, organization, procedure or practitioner this observation is about and into whose or what record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation.") - focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the physiologically relevant time. This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.") - effectiveTiming_field: TimingModel = Field(default=None, alias="effectiveTiming", description="The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the physiologically relevant time. This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.") - issued_field: instantModel = Field(default=None, alias="issued", description="The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.") - performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="Who was responsible for asserting the observed value as true.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The information determined as a result of making the observation, if the information has a simple value.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The information determined as a result of making the observation, if the information has a simple value.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The information determined as a result of making the observation, if the information has a simple value.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The information determined as a result of making the observation, if the information has a simple value.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The information determined as a result of making the observation, if the information has a simple value.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The information determined as a result of making the observation, if the information has a simple value.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The information determined as a result of making the observation, if the information has a simple value.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The information determined as a result of making the observation, if the information has a simple value.") - dataAbsentReason_field: CodeableConceptModel = Field(default=None, alias="dataAbsentReason", description="Provides a reason why the expected value in the element Observation.value[x] is missing.") - interpretation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="interpretation", description="A categorical assessment of an observation value. For example, high, low, normal.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments about the observation or the results.") - bodySite_field: CodeableConceptModel = Field(default=None, alias="bodySite", description="Indicates the site on the subject's body where the observation was made (i.e. the target site).") - bodyStructure_field: ReferenceModel = Field(default=None, alias="bodyStructure", description="Indicates the body structure on the subject's body where the observation was made (i.e. the target site).") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="Indicates the mechanism used to perform the observation.") - specimen_field: ReferenceModel = Field(default=None, alias="specimen", description="The specimen that was used when this observation was made.") - device_field: ReferenceModel = Field(default=None, alias="device", description="A reference to the device that generates the measurements or the device settings for the device.") - referenceRange_field: List[Observation_ReferenceRangeModel] = Field(default_factory=list, alias="referenceRange", description="Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an OR. In other words, to represent two distinct target populations, two `referenceRange` elements would be used.") - hasMember_field: List[ReferenceModel] = Field(default_factory=list, alias="hasMember", description="This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group.") - derivedFrom_field: List[ReferenceModel] = Field(default_factory=list, alias="derivedFrom", description="The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image.") - component_field: List[Observation_ComponentModel] = Field(default_factory=list, alias="component", description="Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations.") - -class Observation_TriggeredByModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - observation_field: ReferenceModel = Field(default=None, alias="observation", description="Reference to the triggering observation.") - type_field: codeModel = Field(default=None, alias="type", description="The type of trigger.") - reason_field: stringModel = Field(default=None, alias="reason", description="Provides the reason why this observation was performed as a result of the observation(s) referenced.") - -class Observation_ReferenceRangeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - low_field: QuantityModel = Field(default=None, alias="low", description="The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3).") - high_field: QuantityModel = Field(default=None, alias="high", description="The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3).") - normalValue_field: CodeableConceptModel = Field(default=None, alias="normalValue", description="The value of the normal value of the reference range.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range.") - appliesTo_field: List[CodeableConceptModel] = Field(default_factory=list, alias="appliesTo", description="Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an AND of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used.") - age_field: RangeModel = Field(default=None, alias="age", description="The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.") - text_field: markdownModel = Field(default=None, alias="text", description="Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of Negative or a list or table of normals.") - -class Observation_ComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what was observed. Sometimes this is called the observation code.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The information determined as a result of making the observation, if the information has a simple value.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The information determined as a result of making the observation, if the information has a simple value.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The information determined as a result of making the observation, if the information has a simple value.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The information determined as a result of making the observation, if the information has a simple value.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The information determined as a result of making the observation, if the information has a simple value.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The information determined as a result of making the observation, if the information has a simple value.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The information determined as a result of making the observation, if the information has a simple value.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The information determined as a result of making the observation, if the information has a simple value.") - dataAbsentReason_field: CodeableConceptModel = Field(default=None, alias="dataAbsentReason", description="Provides a reason why the expected value in the element Observation.component.value[x] is missing.") - interpretation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="interpretation", description="A categorical assessment of an observation value. For example, high, low, normal.") - referenceRange_field: List[Observation_ReferenceRangeModel] = Field(default_factory=list, alias="referenceRange", description="Guidance on how to interpret the value by comparison to a normal or recommended range.") - -class ObservationDefinitionModel(BaseModel): - resourceType_field: str = "ObservationDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URL that is used to identify this ObservationDefinition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this ObservationDefinition is (or will be) published. The URL SHOULD include the major version of the ObservationDefinition. For more information see Technical and Business Versions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Business identifiers assigned to this ObservationDefinition. by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the ObservationDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the ObservationDefinition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions are orderable.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the ObservationDefinition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the ObservationDefinition.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the ObservationDefinition.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A flag to indicate that this ObservationDefinition is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the ObservationDefinition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ObservationDefinition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="Helps establish the authority/credibility of the ObservationDefinition. May also allow for contact.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the ObservationDefinition from the consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate ObservationDefinition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A jurisdiction in which the ObservationDefinition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explains why this ObservationDefinition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright statement relating to the ObservationDefinition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the ObservationDefinition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the asset content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the asset content was last reviewed. Review happens periodically after that, but doesn't change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the ObservationDefinition content was or is planned to be effective.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - derivedFromCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFromCanonical", description="The canonical URL pointing to another FHIR-defined ObservationDefinition that is adhered to in whole or in part by this definition.") - derivedFromUri_field: List[uriModel] = Field(default_factory=list, alias="derivedFromUri", description="The URL pointing to an externally-defined observation definition, guideline or other definition that is adhered to in whole or in part by this definition.") - subject_field: List[CodeableConceptModel] = Field(default_factory=list, alias="subject", description="A code that describes the intended kind of subject of Observation instances conforming to this ObservationDefinition.") - performerType_field: CodeableConceptModel = Field(default=None, alias="performerType", description="The type of individual/organization/device that is expected to act upon instances of this definition.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of observation.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what will be observed. Sometimes this is called the observation name.") - permittedDataType_field: List[codeModel] = Field(default_factory=list, alias="permittedDataType", description="The data types allowed for the value element of the instance observations conforming to this ObservationDefinition.") - multipleResultsAllowed_field: booleanModel = Field(default=None, alias="multipleResultsAllowed", description="Multiple results allowed for observations conforming to this ObservationDefinition.") - bodySite_field: CodeableConceptModel = Field(default=None, alias="bodySite", description="The site on the subject's body where the observation is to be made.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="The method or technique used to perform the observation.") - specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="The kind of specimen that this type of observation is produced on.") - device_field: List[ReferenceModel] = Field(default_factory=list, alias="device", description="The measurement model of device or actual device used to produce observations of this type.") - preferredReportName_field: stringModel = Field(default=None, alias="preferredReportName", description="The preferred name to be used when reporting the results of observations conforming to this ObservationDefinition.") - permittedUnit_field: List[CodingModel] = Field(default_factory=list, alias="permittedUnit", description="Units allowed for the valueQuantity element in the instance observations conforming to this ObservationDefinition.") - qualifiedValue_field: List[ObservationDefinition_QualifiedValueModel] = Field(default_factory=list, alias="qualifiedValue", description="A set of qualified values associated with a context and a set of conditions - provides a range for quantitative and ordinal observations and a collection of value sets for qualitative observations.") - hasMember_field: List[ReferenceModel] = Field(default_factory=list, alias="hasMember", description="This ObservationDefinition defines a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group.") - component_field: List[ObservationDefinition_ComponentModel] = Field(default_factory=list, alias="component", description="Some observations have multiple component observations, expressed as separate code value pairs.") - -class ObservationDefinition_QualifiedValueModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - context_field: CodeableConceptModel = Field(default=None, alias="context", description="A concept defining the context for this set of qualified values.") - appliesTo_field: List[CodeableConceptModel] = Field(default_factory=list, alias="appliesTo", description="The target population this set of qualified values applies to.") - gender_field: codeModel = Field(default=None, alias="gender", description="The gender this set of qualified values applies to.") - age_field: RangeModel = Field(default=None, alias="age", description="The age range this set of qualified values applies to.") - gestationalAge_field: RangeModel = Field(default=None, alias="gestationalAge", description="The gestational age this set of qualified values applies to.") - condition_field: stringModel = Field(default=None, alias="condition", description="Text based condition for which the the set of qualified values is valid.") - rangeCategory_field: codeModel = Field(default=None, alias="rangeCategory", description="The category of range of values for continuous or ordinal observations that match the criteria of this set of qualified values.") - range_field: RangeModel = Field(default=None, alias="range", description="The range of values defined for continuous or ordinal observations that match the criteria of this set of qualified values.") - validCodedValueSet_field: canonicalModel = Field(default=None, alias="validCodedValueSet", description="The set of valid coded results for qualitative observations that match the criteria of this set of qualified values.") - normalCodedValueSet_field: canonicalModel = Field(default=None, alias="normalCodedValueSet", description="The set of normal coded results for qualitative observations that match the criteria of this set of qualified values.") - abnormalCodedValueSet_field: canonicalModel = Field(default=None, alias="abnormalCodedValueSet", description="The set of abnormal coded results for qualitative observations that match the criteria of this set of qualified values.") - criticalCodedValueSet_field: canonicalModel = Field(default=None, alias="criticalCodedValueSet", description="The set of critical coded results for qualitative observations that match the criteria of this set of qualified values.") - -class ObservationDefinition_ComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Describes what will be observed.") - permittedDataType_field: List[codeModel] = Field(default_factory=list, alias="permittedDataType", description="The data types allowed for the value element of the instance of this component observations.") - permittedUnit_field: List[CodingModel] = Field(default_factory=list, alias="permittedUnit", description="Units allowed for the valueQuantity element in the instance observations conforming to this ObservationDefinition.") - qualifiedValue_field: List[ObservationDefinition_QualifiedValueModel] = Field(default_factory=list, alias="qualifiedValue", description="A set of qualified values associated with a context and a set of conditions - provides a range for quantitative and ordinal observations and a collection of value sets for qualitative observations.") - -class OperationDefinitionModel(BaseModel): - resourceType_field: str = "OperationDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the operation definition.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of this operation definition.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the operation definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the operation definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this operation definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - kind_field: codeModel = Field(default=None, alias="kind", description="Whether this is an operation or a named query.") - affectsState_field: booleanModel = Field(default=None, alias="affectsState", description="Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting state'.") - code_field: codeModel = Field(default=None, alias="code", description="The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.") - comment_field: markdownModel = Field(default=None, alias="comment", description="Additional information about how to use this operation or named query.") - base_field: canonicalModel = Field(default=None, alias="base", description="Indicates that this operation definition is a constraining profile on the base.") - resource_field: List[codeModel] = Field(default_factory=list, alias="resource", description="The types on which this operation can be executed.") - system_field: booleanModel = Field(default=None, alias="system", description="Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).") - type_field: booleanModel = Field(default=None, alias="type", description="Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).") - instance_field: booleanModel = Field(default=None, alias="instance", description="Indicates whether this operation can be invoked on a particular instance of one of the given types.") - inputProfile_field: canonicalModel = Field(default=None, alias="inputProfile", description="Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.") - outputProfile_field: canonicalModel = Field(default=None, alias="outputProfile", description="Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.") - parameter_field: List[OperationDefinition_ParameterModel] = Field(default_factory=list, alias="parameter", description="The parameters for the operation/query.") - overload_field: List[OperationDefinition_OverloadModel] = Field(default_factory=list, alias="overload", description="Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.") - -class OperationDefinition_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: codeModel = Field(default=None, alias="name", description="The name of used to identify the parameter.") - use_field: codeModel = Field(default=None, alias="use", description="Whether this is an input or an output parameter.") - scope_field: List[codeModel] = Field(default_factory=list, alias="scope", description="If present, indicates that the parameter applies when the operation is being invoked at the specified level.") - min_field: integerModel = Field(default=None, alias="min", description="The minimum number of times this parameter SHALL appear in the request or response.") - max_field: stringModel = Field(default=None, alias="max", description="The maximum number of times this element is permitted to appear in the request or response.") - documentation_field: markdownModel = Field(default=None, alias="documentation", description="Describes the meaning or use of this parameter.") - type_field: codeModel = Field(default=None, alias="type", description="The type for this parameter.") - allowedType_field: List[codeModel] = Field(default_factory=list, alias="allowedType", description="Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.") - targetProfile_field: List[canonicalModel] = Field(default_factory=list, alias="targetProfile", description="Used when the type is Reference or canonical, and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.") - searchType_field: codeModel = Field(default=None, alias="searchType", description="How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.") - binding_field: OperationDefinition_BindingModel = Field(default=None, alias="binding", description="Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).") - referencedFrom_field: List[OperationDefinition_ReferencedFromModel] = Field(default_factory=list, alias="referencedFrom", description="Identifies other resource parameters within the operation invocation that are expected to resolve to this resource.") - part_field: List[OperationDefinition_ParameterModel] = Field(default_factory=list, alias="part", description="The parts of a nested Parameter.") - -class OperationDefinition_BindingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - strength_field: codeModel = Field(default=None, alias="strength", description="Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.") - valueSet_field: canonicalModel = Field(default=None, alias="valueSet", description="Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.") - -class OperationDefinition_ReferencedFromModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - source_field: stringModel = Field(default=None, alias="source", description="The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.") - sourceId_field: stringModel = Field(default=None, alias="sourceId", description="The id of the element in the referencing resource that is expected to resolve to this resource.") - -class OperationDefinition_OverloadModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - parameterName_field: List[stringModel] = Field(default_factory=list, alias="parameterName", description="Name of parameter to include in overload.") - comment_field: stringModel = Field(default=None, alias="comment", description="Comments to go on overload.") - -class OperationOutcomeModel(BaseModel): - resourceType_field: str = "OperationOutcome" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - issue_field: List[OperationOutcome_IssueModel] = Field(default_factory=list, alias="issue", description="An error, warning, or information message that results from a system action.") - -class OperationOutcome_IssueModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - severity_field: codeModel = Field(default=None, alias="severity", description="Indicates whether the issue indicates a variation from successful processing.") - code_field: codeModel = Field(default=None, alias="code", description="Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element.") - details_field: CodeableConceptModel = Field(default=None, alias="details", description="Additional details about the error. This may be a text description of the error or a system code that identifies the error.") - diagnostics_field: stringModel = Field(default=None, alias="diagnostics", description="Additional diagnostic information about the issue.") - location_field: List[stringModel] = Field(default_factory=list, alias="location", description="This element is deprecated because it is XML specific. It is replaced by issue.expression, which is format independent, and simpler to parse. ") - expression_field: List[stringModel] = Field(default_factory=list, alias="expression", description="A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised.") - -class OrganizationModel(BaseModel): - resourceType_field: str = "Organization" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the organization that is used to identify the organization across multiple disparate systems.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether the organization's record is still in active use.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The kind(s) of organization that this is.") - name_field: stringModel = Field(default=None, alias="name", description="A name associated with the organization.") - alias_field: List[stringModel] = Field(default_factory=list, alias="alias", description="A list of alternate names that the organization is known as, or was known as in the past.") - description_field: markdownModel = Field(default=None, alias="description", description="Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.") - contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") - partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="The organization of which this organization forms a part.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for the organization.") - qualification_field: List[Organization_QualificationModel] = Field(default_factory=list, alias="qualification", description="The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.") - -class Organization_QualificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier allocated to this qualification for this organization.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded representation of the qualification.") - period_field: PeriodModel = Field(default=None, alias="period", description="Period during which the qualification is valid.") - issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="Organization that regulates and issues the qualification.") - -class OrganizationAffiliationModel(BaseModel): - resourceType_field: str = "OrganizationAffiliation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers that are specific to this role.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this organization affiliation record is in active use.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period during which the participatingOrganization is affiliated with the primary organization.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="Organization where the role is available (primary organization/has members).") - participatingOrganization_field: ReferenceModel = Field(default=None, alias="participatingOrganization", description="The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).") - network_field: List[ReferenceModel] = Field(default_factory=list, alias="network", description="The network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Definition of the role the participatingOrganization plays in the association.") - specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="Specific specialty of the participatingOrganization in the context of the role.") - location_field: List[ReferenceModel] = Field(default_factory=list, alias="location", description="The location(s) at which the role occurs.") - healthcareService_field: List[ReferenceModel] = Field(default_factory=list, alias="healthcareService", description="Healthcare services provided through the role.") - contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available at the participatingOrganization relevant to this Affiliation.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description="Technical endpoints providing access to services operated for this role.") - -class PackagedProductDefinitionModel(BaseModel): - resourceType_field: str = "PackagedProductDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier for this package as whole - not the the content of the package. Unique instance identifiers assigned to a package by manufacturers, regulators, drug catalogue custodians or other organizations.") - name_field: stringModel = Field(default=None, alias="name", description="A name for this package. Typically what it would be listed as in a drug formulary or catalogue, inventory etc.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A high level category e.g. medicinal product, raw material, shipping/transport container, etc.") - packageFor_field: List[ReferenceModel] = Field(default_factory=list, alias="packageFor", description="The product this package model relates to, not the contents of the package (for which see package.containedItem).") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status within the lifecycle of this item. A high level status, this is not intended to duplicate details carried elsewhere such as legal status, or authorization or marketing status.") - statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the given status became applicable.") - containedItemQuantity_field: List[QuantityModel] = Field(default_factory=list, alias="containedItemQuantity", description="A total of the complete count of contained items of a particular type/form, independent of sub-packaging or organization. This can be considered as the pack size. This attribute differs from containedItem.amount in that it can give a single aggregated count of all tablet types in a pack, even when these are different manufactured items. For example a pill pack of 21 tablets plus 7 sugar tablets, can be denoted here as '28 tablets'. This attribute is repeatable so that the different item types in one pack type can be counted (e.g. a count of vials and count of syringes). Each repeat must have different units, so that it is clear what the different sets of counted items are, and it is not intended to allow different counts of similar items (e.g. not '2 tubes and 3 tubes'). Repeats are not to be used to represent different pack sizes (e.g. 20 pack vs. 50 pack) - which would be different instances of this resource.") - description_field: markdownModel = Field(default=None, alias="description", description="Textual description. Note that this is not the name of the package or product.") - legalStatusOfSupply_field: List[PackagedProductDefinition_LegalStatusOfSupplyModel] = Field(default_factory=list, alias="legalStatusOfSupply", description="The legal status of supply of the packaged item as classified by the regulator.") - marketingStatus_field: List[MarketingStatusModel] = Field(default_factory=list, alias="marketingStatus", description="Allows specifying that an item is on the market for sale, or that it is not available, and the dates and locations associated.") - copackagedIndicator_field: booleanModel = Field(default=None, alias="copackagedIndicator", description="Identifies if the package contains different items, such as when a drug product is supplied with another item e.g. a diluent or adjuvant.") - manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="Manufacturer of this package type. When there are multiple it means these are all possible manufacturers.") - attachedDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="attachedDocument", description="Additional information or supporting documentation about the packaged product.") - packaging_field: PackagedProductDefinition_PackagingModel = Field(default=None, alias="packaging", description="A packaging item, as a container for medically related items, possibly with other packaging items within, or a packaging component, such as bottle cap (which is not a device or a medication manufactured item).") - characteristic_field: List[PackagedProductDefinition_PropertyModel] = Field(default_factory=list, alias="characteristic", description="Allows the key features to be recorded, such as hospital pack, nurse prescribable, calendar pack.") - -class PackagedProductDefinition_LegalStatusOfSupplyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The actual status of supply. Conveys in what situation this package type may be supplied for use.") - jurisdiction_field: CodeableConceptModel = Field(default=None, alias="jurisdiction", description="The place where the legal status of supply applies. When not specified, this indicates it is unknown in this context.") - -class PackagedProductDefinition_PackagingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A business identifier that is specific to this particular part of the packaging, often assigned by the manufacturer. Including possibly Data Carrier Identifier (a GS1 barcode).") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The physical type of the container of the items.") - componentPart_field: booleanModel = Field(default=None, alias="componentPart", description="Is this a part of the packaging (e.g. a cap or bottle stopper), rather than the packaging itself (e.g. a bottle or vial). The latter type are designed be a container, but the former are not.") - quantity_field: integerModel = Field(default=None, alias="quantity", description="The quantity of packaging items contained at this layer of the package. This does not relate to the number of contained items but relates solely to the number of packaging items. When looking at the outermost layer it is always 1. If there are two boxes within, at the next layer it would be 2.") - material_field: List[CodeableConceptModel] = Field(default_factory=list, alias="material", description="Material type of the package item.") - alternateMaterial_field: List[CodeableConceptModel] = Field(default_factory=list, alias="alternateMaterial", description="A possible alternate material for this part of the packaging, that is allowed to be used instead of the usual material (e.g. different types of plastic for a blister sleeve).") - shelfLifeStorage_field: List[ProductShelfLifeModel] = Field(default_factory=list, alias="shelfLifeStorage", description="Shelf Life and storage information.") - manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="Manufacturer of this packaging item. When there are multiple values each one is a potential manufacturer of this packaging item.") - property_field: List[PackagedProductDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General characteristics of this item.") - containedItem_field: List[PackagedProductDefinition_ContainedItemModel] = Field(default_factory=list, alias="containedItem", description="The item(s) within the packaging.") - packaging_field: List[PackagedProductDefinition_PackagingModel] = Field(default_factory=list, alias="packaging", description="Allows containers (and parts of containers) within containers, still as a part of a single packaged product. See also PackagedProductDefinition.packaging.containedItem.item(PackagedProductDefinition).") - -class PackagedProductDefinition_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of characteristic.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the characteristic.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the characteristic.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the characteristic.") - -class PackagedProductDefinition_ContainedItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The actual item(s) of medication, as manufactured, or a device (typically, but not necessarily, a co-packaged one), or other medically related item (such as food, biologicals, raw materials, medical fluids, gases etc.), as contained in the package. This also allows another whole packaged product to be included, which is solely for the case where a package of other entire packages is wanted - such as a wholesale or distribution pack (for layers within one package, use PackagedProductDefinition.packaging.packaging).") - amount_field: QuantityModel = Field(default=None, alias="amount", description="The number of this type of item within this packaging or for continuous items such as liquids it is the quantity (for example 25ml). See also PackagedProductDefinition.containedItemQuantity (especially the long definition).") - -class ParametersModel(BaseModel): - resourceType_field: str = "Parameters" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - parameter_field: List[Parameters_ParameterModel] = Field(default_factory=list, alias="parameter", description="A parameter passed to or received from the operation.") - -class Parameters_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The name of the parameter (reference to the operation definition).") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="Conveys the content if the parameter is a data type.") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="Conveys the content if the parameter is a data type.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="Conveys the content if the parameter is a data type.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="Conveys the content if the parameter is a data type.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Conveys the content if the parameter is a data type.") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="Conveys the content if the parameter is a data type.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="Conveys the content if the parameter is a data type.") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="Conveys the content if the parameter is a data type.") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="Conveys the content if the parameter is a data type.") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="Conveys the content if the parameter is a data type.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="Conveys the content if the parameter is a data type.") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="Conveys the content if the parameter is a data type.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="Conveys the content if the parameter is a data type.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="Conveys the content if the parameter is a data type.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Conveys the content if the parameter is a data type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Conveys the content if the parameter is a data type.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Conveys the content if the parameter is a data type.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Conveys the content if the parameter is a data type.") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="Conveys the content if the parameter is a data type.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="Conveys the content if the parameter is a data type.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="Conveys the content if the parameter is a data type.") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="Conveys the content if the parameter is a data type.") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="Conveys the content if the parameter is a data type.") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="Conveys the content if the parameter is a data type.") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="Conveys the content if the parameter is a data type.") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="Conveys the content if the parameter is a data type.") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="Conveys the content if the parameter is a data type.") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="Conveys the content if the parameter is a data type.") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="Conveys the content if the parameter is a data type.") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="Conveys the content if the parameter is a data type.") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="Conveys the content if the parameter is a data type.") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="Conveys the content if the parameter is a data type.") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="Conveys the content if the parameter is a data type.") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="Conveys the content if the parameter is a data type.") - resource_field: ResourceListModel = Field(default=None, alias="resource", description="Conveys the content if the parameter is a whole resource.") - part_field: List[Parameters_ParameterModel] = Field(default_factory=list, alias="part", description="A named part of a multi-part parameter.") - -class PatientModel(BaseModel): - resourceType: str = "Patient" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier for this patient.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this patient record is in active use. ") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the individual.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.") - birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the individual.") - address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="An address for the individual.") - maritalStatus_field: CodeableConceptModel = Field(default=None, alias="maritalStatus", description="This field contains a patient's most recent marital (civil) status.") - photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the patient.") - contact_field: List[Patient_ContactModel] = Field(default_factory=list, alias="contact", description="A contact party (e.g. guardian, partner, friend) for the patient.") - communication_field: List[Patient_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the patient about his or her health.") - generalPractitioner_field: List[ReferenceModel] = Field(default_factory=list, alias="generalPractitioner", description="Patient's nominated care provider.") - managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="Organization that is the custodian of the patient record.") - link_field: List[Patient_LinkModel] = Field(default_factory=list, alias="link", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") - -class Patient_ContactModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - relationship_field: List[CodeableConceptModel] = Field(default_factory=list, alias="relationship", description="The nature of the relationship between the patient and the contact person.") - name_field: HumanNameModel = Field(default=None, alias="name", description="A name associated with the contact person.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") - address_field: AddressModel = Field(default=None, alias="address", description="Address for the contact person.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="Organization on behalf of which the contact is acting or for which the contact is working.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period during which this contact person or organization is valid to be contacted relating to this patient.") - -class Patient_CommunicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).") - -class Patient_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - other_field: ReferenceModel = Field(default=None, alias="other", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") - type_field: codeModel = Field(default=None, alias="type", description="The type of link between this patient resource and another patient resource.") - -class PaymentNoticeModel(BaseModel): - resourceType_field: str = "PaymentNotice" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this payment notice.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - request_field: ReferenceModel = Field(default=None, alias="request", description="Reference of resource for which payment is being made.") - response_field: ReferenceModel = Field(default=None, alias="response", description="Reference of response to resource for which payment is being made.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date when this resource was created.") - reporter_field: ReferenceModel = Field(default=None, alias="reporter", description="The party who reports the payment notice.") - payment_field: ReferenceModel = Field(default=None, alias="payment", description="A reference to the payment which is the subject of this notice.") - paymentDate_field: dateModel = Field(default=None, alias="paymentDate", description="The date when the above payment action occurred.") - payee_field: ReferenceModel = Field(default=None, alias="payee", description="The party who will receive or has received payment that is the subject of this notification.") - recipient_field: ReferenceModel = Field(default=None, alias="recipient", description="The party who is notified of the payment status.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="The amount sent to the payee.") - paymentStatus_field: CodeableConceptModel = Field(default=None, alias="paymentStatus", description="A code indicating whether payment has been sent or cleared.") - -class PaymentReconciliationModel(BaseModel): - resourceType_field: str = "PaymentReconciliation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this payment reconciliation.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code to indicate the nature of the payment such as payment, adjustment.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - kind_field: CodeableConceptModel = Field(default=None, alias="kind", description="The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time for which payments have been gathered into this bulk payment for settlement.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date when the resource was created.") - enterer_field: ReferenceModel = Field(default=None, alias="enterer", description="Payment enterer if not the actual payment issuer.") - issuerType_field: CodeableConceptModel = Field(default=None, alias="issuerType", description="The type of the source such as patient or insurance.") - paymentIssuer_field: ReferenceModel = Field(default=None, alias="paymentIssuer", description="The party who generated the payment.") - request_field: ReferenceModel = Field(default=None, alias="request", description="Original request resource reference.") - requestor_field: ReferenceModel = Field(default=None, alias="requestor", description="The practitioner who is responsible for the services rendered to the patient.") - outcome_field: codeModel = Field(default=None, alias="outcome", description="The outcome of a request for a reconciliation.") - disposition_field: stringModel = Field(default=None, alias="disposition", description="A human readable description of the status of the request for the reconciliation.") - date_field: dateModel = Field(default=None, alias="date", description="The date of payment as indicated on the financial instrument.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location of the site or device for electronic transfers or physical location for cash payments.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="The means of payment such as check, card cash, or electronic funds transfer.") - cardBrand_field: stringModel = Field(default=None, alias="cardBrand", description="The card brand such as debit, Visa, Amex etc. used if a card is the method of payment.") - accountNumber_field: stringModel = Field(default=None, alias="accountNumber", description="A portion of the account number, often the last 4 digits, used for verification not charging purposes.") - expirationDate_field: dateModel = Field(default=None, alias="expirationDate", description="The year and month (YYYY-MM) when the instrument, typically card, expires.") - processor_field: stringModel = Field(default=None, alias="processor", description="The name of the card processor, etf processor, bank for checks.") - referenceNumber_field: stringModel = Field(default=None, alias="referenceNumber", description="The check number, eft reference, car processor reference.") - authorization_field: stringModel = Field(default=None, alias="authorization", description="An alphanumeric issued by the processor to confirm the successful issuance of payment.") - tenderedAmount_field: MoneyModel = Field(default=None, alias="tenderedAmount", description="The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid.") - returnedAmount_field: MoneyModel = Field(default=None, alias="returnedAmount", description="The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="Total payment amount as indicated on the financial instrument.") - paymentIdentifier_field: IdentifierModel = Field(default=None, alias="paymentIdentifier", description="Issuer's unique identifier for the payment instrument.") - allocation_field: List[PaymentReconciliation_AllocationModel] = Field(default_factory=list, alias="allocation", description="Distribution of the payment amount for a previously acknowledged payable.") - formCode_field: CodeableConceptModel = Field(default=None, alias="formCode", description="A code for the form to be used for printing the content.") - processNote_field: List[PaymentReconciliation_ProcessNoteModel] = Field(default_factory=list, alias="processNote", description="A note that describes or explains the processing in a human readable form.") - -class PaymentReconciliation_AllocationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Unique identifier for the current payment item for the referenced payable.") - predecessor_field: IdentifierModel = Field(default=None, alias="predecessor", description="Unique identifier for the prior payment item for the referenced payable.") - target_field: ReferenceModel = Field(default=None, alias="target", description="Specific resource to which the payment/adjustment/advance applies.") - targetItemIdentifier_field: IdentifierModel = Field(default=None, alias="targetItemIdentifier", description=" Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter to which this payment applies, may be completed by the receiver, used for search.") - account_field: ReferenceModel = Field(default=None, alias="account", description="The Account to which this payment applies, may be completed by the receiver, used for search.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Code to indicate the nature of the payment.") - submitter_field: ReferenceModel = Field(default=None, alias="submitter", description="The party which submitted the claim or financial transaction.") - response_field: ReferenceModel = Field(default=None, alias="response", description="A resource, such as a ClaimResponse, which contains a commitment to payment.") - date_field: dateModel = Field(default=None, alias="date", description="The date from the response resource containing a commitment to pay.") - responsible_field: ReferenceModel = Field(default=None, alias="responsible", description="A reference to the individual who is responsible for inquiries regarding the response and its payment.") - payee_field: ReferenceModel = Field(default=None, alias="payee", description="The party which is receiving the payment.") - amount_field: MoneyModel = Field(default=None, alias="amount", description="The monetary amount allocated from the total payment to the payable.") - -class PaymentReconciliation_ProcessNoteModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The business purpose of the note text.") - text_field: stringModel = Field(default=None, alias="text", description="The explanation or description associated with the processing.") - -class PermissionModel(BaseModel): - resourceType_field: str = "Permission" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - status_field: codeModel = Field(default=None, alias="status", description="Status.") - asserter_field: ReferenceModel = Field(default=None, alias="asserter", description="The person or entity that asserts the permission.") - date_field: List[dateTimeModel] = Field(default_factory=list, alias="date", description="The date that permission was asserted.") - validity_field: PeriodModel = Field(default=None, alias="validity", description="The period in which the permission is active.") - justification_field: Permission_JustificationModel = Field(default=None, alias="justification", description="The asserted justification for using the data.") - combining_field: codeModel = Field(default=None, alias="combining", description="Defines a procedure for arriving at an access decision given the set of rules.") - rule_field: List[Permission_RuleModel] = Field(default_factory=list, alias="rule", description="A set of rules.") - -class Permission_JustificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - basis_field: List[CodeableConceptModel] = Field(default_factory=list, alias="basis", description="This would be a codeableconcept, or a coding, which can be constrained to , for example, the 6 grounds for processing in GDPR.") - evidence_field: List[ReferenceModel] = Field(default_factory=list, alias="evidence", description="Justifing rational.") - -class Permission_RuleModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="deny | permit.") - data_field: List[Permission_DataModel] = Field(default_factory=list, alias="data", description="A description or definition of which activities are allowed to be done on the data.") - activity_field: List[Permission_ActivityModel] = Field(default_factory=list, alias="activity", description="A description or definition of which activities are allowed to be done on the data.") - limit_field: List[CodeableConceptModel] = Field(default_factory=list, alias="limit", description="What limits apply to the use of the data.") - -class Permission_DataModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - resource_field: List[Permission_ResourceModel] = Field(default_factory=list, alias="resource", description="Explicit FHIR Resource references.") - security_field: List[CodingModel] = Field(default_factory=list, alias="security", description="The data in scope are those with the given codes present in that data .meta.security element.") - period_field: List[PeriodModel] = Field(default_factory=list, alias="period", description="Clinical or Operational Relevant period of time that bounds the data controlled by this rule.") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="Used when other data selection elements are insufficient.") - -class Permission_ResourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - meaning_field: codeModel = Field(default=None, alias="meaning", description="How the resource reference is interpreted when testing consent restrictions.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a specific resource that defines which resources are covered by this consent.") - -class Permission_ActivityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - actor_field: List[ReferenceModel] = Field(default_factory=list, alias="actor", description="The actor(s) authorized for the defined activity.") - action_field: List[CodeableConceptModel] = Field(default_factory=list, alias="action", description="Actions controlled by this Rule.") - purpose_field: List[CodeableConceptModel] = Field(default_factory=list, alias="purpose", description="The purpose for which the permission is given.") - -class PersonModel(BaseModel): - resourceType_field: str = "Person" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for a person within a particular scope.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this person's record is in active use.") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the person.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender.") - birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The birth date for the person.") - address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="One or more addresses for the person.") - maritalStatus_field: CodeableConceptModel = Field(default=None, alias="maritalStatus", description="This field contains a person's most recent marital (civil) status.") - photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="An image that can be displayed as a thumbnail of the person to enhance the identification of the individual.") - communication_field: List[Person_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the person about his or her health.") - managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="The organization that is the custodian of the person record.") - link_field: List[Person_LinkModel] = Field(default_factory=list, alias="link", description="Link to a resource that concerns the same actual person.") - -class Person_CommunicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).") - -class Person_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - target_field: ReferenceModel = Field(default=None, alias="target", description="The resource to which this actual person is associated.") - assurance_field: codeModel = Field(default=None, alias="assurance", description="Level of assurance that this link is associated with the target resource.") - -class PlanDefinitionModel(BaseModel): - resourceType_field: str = "PlanDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this plan definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this plan definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the plan definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this plan definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the plan definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the plan definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the plan definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the plan definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this plan definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this plan definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the plan definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the plan definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the plan definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the plan definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate plan definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the plan definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this plan definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the plan definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the plan definition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the plan definition content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the plan definition. Topics provide a high-level categorization of the definition that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the content.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the content.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, or bibliographic references.") - subtitle_field: stringModel = Field(default=None, alias="subtitle", description="An explanatory or alternate title for the plan definition giving additional information about its content.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A high-level category for the plan definition that distinguishes the kinds of systems that would be interested in the plan definition.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the plan definition. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code, group definition, or canonical reference that describes or identifies the intended subject of the plan definition. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") - usage_field: markdownModel = Field(default=None, alias="usage", description="A detailed description of how the plan definition is used from a clinical perspective.") - library_field: List[canonicalModel] = Field(default_factory=list, alias="library", description="A reference to a Library resource containing any formal logic used by the plan definition.") - goal_field: List[PlanDefinition_GoalModel] = Field(default_factory=list, alias="goal", description="A goal describes an expected outcome that activities within the plan are intended to achieve. For example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, meeting the acceptance criteria for a test as specified by a quality specification, etc.") - actor_field: List[PlanDefinition_ActorModel] = Field(default_factory=list, alias="actor", description="Actors represent the individuals or groups involved in the execution of the defined set of activities.") - action_field: List[PlanDefinition_ActionModel] = Field(default_factory=list, alias="action", description="An action or group of actions to be taken as part of the plan. For example, in clinical care, an action would be to prescribe a particular indicated medication, or perform a particular test as appropriate. In pharmaceutical quality, an action would be the test that needs to be performed on a drug product as defined in the quality specification.") - asNeededCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="asNeededCodeableConcept", description="If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example pain, on flare-up, etc.") - -class PlanDefinition_GoalModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Indicates a category the goal falls within.") - description_field: CodeableConceptModel = Field(default=None, alias="description", description="Human-readable and/or coded description of a specific desired objective of care, such as control blood pressure or negotiate an obstacle course or dance with child at wedding.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Identifies the expected level of importance associated with reaching/sustaining the defined goal.") - start_field: CodeableConceptModel = Field(default=None, alias="start", description="The event after which the goal should begin being pursued.") - addresses_field: List[CodeableConceptModel] = Field(default_factory=list, alias="addresses", description="Identifies problems, conditions, issues, or concerns the goal is intended to address.") - documentation_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="documentation", description="Didactic or other informational resources associated with the goal that provide further supporting information about the goal. Information resources can include inline text commentary and links to web resources.") - target_field: List[PlanDefinition_TargetModel] = Field(default_factory=list, alias="target", description="Indicates what should be done and within what timeframe.") - -class PlanDefinition_TargetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - measure_field: CodeableConceptModel = Field(default=None, alias="measure", description="The parameter whose value is to be tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.") - detailQuantity_field: QuantityModel = Field(default=None, alias="detailQuantity", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") - detailRange_field: RangeModel = Field(default=None, alias="detailRange", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") - detailCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="detailCodeableConcept", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") - detailRatio_field: RatioModel = Field(default=None, alias="detailRatio", description="The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%, or in the case of pharmaceutical quality - NMT 0.6%, Clear solution, etc. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value.") - due_field: DurationModel = Field(default=None, alias="due", description="Indicates the timeframe after the start of the goal in which the goal should be met.") - -class PlanDefinition_ActorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="A descriptive label for the actor.") - description_field: markdownModel = Field(default=None, alias="description", description="A description of how the actor fits into the overall actions of the plan definition.") - option_field: List[PlanDefinition_OptionModel] = Field(default_factory=list, alias="option", description="The characteristics of the candidates that could serve as the actor.") - -class PlanDefinition_OptionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") - typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") - typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") - -class PlanDefinition_ActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the PlanDefinition to allow linkage within the realized CarePlan and/or RequestOrchestration.") - prefix_field: stringModel = Field(default=None, alias="prefix", description="A user-visible prefix for the action. For example a section or item numbering such as 1. or A.") - title_field: stringModel = Field(default=None, alias="title", description="The textual description of the action displayed to a user. For example, when the action is a test to be performed, the title would be the title of the test such as Assay by HPLC.") - description_field: markdownModel = Field(default=None, alias="description", description="A brief description of the action used to provide a summary to display to the user.") - textEquivalent_field: markdownModel = Field(default=None, alias="textEquivalent", description="A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamically.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the action should be addressed with respect to other actions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that provides a meaning, grouping, or classification for the action or action group. For example, a section may have a LOINC code for the section of a documentation template. In pharmaceutical quality, an action (Test) such as pH could be classified as a physical property.") - reason_field: List[CodeableConceptModel] = Field(default_factory=list, alias="reason", description="A description of why this action is necessary or appropriate.") - documentation_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="documentation", description="Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resources.") - goalId_field: List[idModel] = Field(default_factory=list, alias="goalId", description="Identifies goals that this action supports. The reference must be to a goal element defined within this plan definition. In pharmaceutical quality, a goal represents acceptance criteria (Goal) for a given action (Test), so the goalId would be the unique id of a defined goal element establishing the acceptance criteria for the action.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code, group definition, or canonical reference that describes the intended subject of the action and its children, if any. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code, group definition, or canonical reference that describes the intended subject of the action and its children, if any. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource.") - trigger_field: List[TriggerDefinitionModel] = Field(default_factory=list, alias="trigger", description="A description of when the action should be triggered. When multiple triggers are specified on an action, any triggering event invokes the action.") - condition_field: List[PlanDefinition_ConditionModel] = Field(default_factory=list, alias="condition", description="An expression that describes applicability criteria or start/stop conditions for the action.") - input_field: List[PlanDefinition_InputModel] = Field(default_factory=list, alias="input", description="Defines input data requirements for the action.") - output_field: List[PlanDefinition_OutputModel] = Field(default_factory=list, alias="output", description="Defines the outputs of the action, if any.") - relatedAction_field: List[PlanDefinition_RelatedActionModel] = Field(default_factory=list, alias="relatedAction", description="A relationship to another action such as before or 30-60 minutes after start of.") - timingAge_field: AgeModel = Field(default=None, alias="timingAge", description="An optional value describing when the action should be performed.") - timingDuration_field: DurationModel = Field(default=None, alias="timingDuration", description="An optional value describing when the action should be performed.") - timingRange_field: RangeModel = Field(default=None, alias="timingRange", description="An optional value describing when the action should be performed.") - timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="An optional value describing when the action should be performed.") - location_field: CodeableReferenceModel = Field(default=None, alias="location", description="Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc.") - participant_field: List[PlanDefinition_ParticipantModel] = Field(default_factory=list, alias="participant", description="Indicates who should participate in performing the action described.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of action to perform (create, update, remove).") - groupingBehavior_field: codeModel = Field(default=None, alias="groupingBehavior", description="Defines the grouping behavior for the action and its children.") - selectionBehavior_field: codeModel = Field(default=None, alias="selectionBehavior", description="Defines the selection behavior for the action and its children.") - requiredBehavior_field: codeModel = Field(default=None, alias="requiredBehavior", description="Defines the required behavior for the action.") - precheckBehavior_field: codeModel = Field(default=None, alias="precheckBehavior", description="Defines whether the action should usually be preselected.") - cardinalityBehavior_field: codeModel = Field(default=None, alias="cardinalityBehavior", description="Defines whether the action can be selected multiple times.") - transform_field: canonicalModel = Field(default=None, alias="transform", description="A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.") - dynamicValue_field: List[PlanDefinition_DynamicValueModel] = Field(default_factory=list, alias="dynamicValue", description="Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the result.") - action_field: List[PlanDefinition_ActionModel] = Field(default_factory=list, alias="action", description="Sub actions that are contained within the action. The behavior of this action determines the functionality of the sub-actions. For example, a selection behavior of at-most-one indicates that of the sub-actions, at most one may be chosen as part of realizing the action definition.") - -class PlanDefinition_ConditionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - kind_field: codeModel = Field(default=None, alias="kind", description="The kind of condition.") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression that returns true or false, indicating whether the condition is satisfied.") - -class PlanDefinition_InputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") - requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that is to be provided as input to the action.") - relatedData_field: idModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that provides data to this input.") - -class PlanDefinition_OutputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") - requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that results as output from the action.") - relatedData_field: stringModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that is results as output from the action.") - -class PlanDefinition_RelatedActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - targetId_field: idModel = Field(default=None, alias="targetId", description="The element id of the target related action.") - relationship_field: codeModel = Field(default=None, alias="relationship", description="The relationship of the start of this action to the related action.") - endRelationship_field: codeModel = Field(default=None, alias="endRelationship", description="The relationship of the end of this action to the related action.") - offsetDuration_field: DurationModel = Field(default=None, alias="offsetDuration", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") - offsetRange_field: RangeModel = Field(default=None, alias="offsetRange", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") - -class PlanDefinition_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - actorId_field: stringModel = Field(default=None, alias="actorId", description="A reference to the id element of the actor who will participate in this action.") - type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") - typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") - typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Indicates how the actor will be involved in the action - author, reviewer, witness, etc.") - -class PlanDefinition_DynamicValueModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression specifying the value of the customized element.") - -class PractitionerModel(BaseModel): - resourceType_field: str = "Practitioner" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person in this role.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this practitioner's record is in active use.") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="The name(s) associated with the practitioner.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the practitioner, e.g. a telephone number or an email address.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.") - birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the practitioner.") - address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="Address(es) of the practitioner that are not role specific (typically home address). ") - photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the person.") - qualification_field: List[Practitioner_QualificationModel] = Field(default_factory=list, alias="qualification", description="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.") - communication_field: List[Practitioner_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.") - -class Practitioner_QualificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person's qualification.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded representation of the qualification.") - period_field: PeriodModel = Field(default=None, alias="period", description="Period during which the qualification is valid.") - issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="Organization that regulates and issues the qualification.") - -class Practitioner_CommunicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).") - -class PractitionerRoleModel(BaseModel): - resourceType_field: str = "PractitionerRole" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business Identifiers that are specific to a role/location.") - active_field: booleanModel = Field(default=None, alias="active", description=" Whether this practitioner role record is in active use. Some systems may use this property to mark non-active practitioners, such as those that are not currently employed.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period during which the person is authorized to act as a practitioner in these role(s) for the organization.") - practitioner_field: ReferenceModel = Field(default=None, alias="practitioner", description="Practitioner that is able to provide the defined services for the organization.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="The organization where the Practitioner performs the roles associated.") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="Roles which this practitioner is authorized to perform for the organization.") - specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that describes the functional role they are practicing at a given organization or location.") - location_field: List[ReferenceModel] = Field(default_factory=list, alias="location", description="The location(s) at which this practitioner provides care.") - healthcareService_field: List[ReferenceModel] = Field(default_factory=list, alias="healthcareService", description="The list of healthcare services that this worker provides for this role's Organization/Location(s).") - contact_field: List[ExtendedContactDetailModel] = Field(default_factory=list, alias="contact", description="The contact details of communication devices available relevant to the specific PractitionerRole. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.") - characteristic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="characteristic", description="Collection of characteristics (attributes).") - communication_field: List[CodeableConceptModel] = Field(default_factory=list, alias="communication", description="A language the practitioner can use in patient communication. The practitioner may know several languages (listed in practitioner.communication), however these are the languages that could be advertised in a directory for a patient to search.") - availability_field: List[AvailabilityModel] = Field(default_factory=list, alias="availability", description="A collection of times the practitioner is available or performing this role at the location and/or healthcareservice.") - endpoint_field: List[ReferenceModel] = Field(default_factory=list, alias="endpoint", description=" Technical endpoints providing access to services operated for the practitioner with this role. Commonly used for locating scheduling services, or identifying where to send referrals electronically.") - -class ProcedureModel(BaseModel): - resourceType_field: str = "Procedure" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A reference to a resource that contains details of the request for this procedure.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular procedure is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="Captures the reason for the current state of the procedure.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the procedure for searching, sorting and display purposes (e.g. Surgical Procedure).") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. Laparoscopic Appendectomy).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="On whom or on what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations). If the actual focus of the procedure is different from the subject, the focus element specifies the actual focus of the procedure.") - focus_field: ReferenceModel = Field(default=None, alias="focus", description="Who is the target of the procedure when it is not the subject of record only. If focus is not present, then subject is the focus. If focus is present and the subject is one of the targets of the procedure, include subject as a focus as well. If focus is present and the subject is not included in focus, it implies that the procedure was only targeted on the focus. For example, when a caregiver is given education for a patient, the caregiver would be the focus and the procedure record is associated with the subject (e.g. patient). For example, use focus when recording the target of the education, training, or counseling is the parent or relative of a patient.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - occurrenceAge_field: AgeModel = Field(default=None, alias="occurrenceAge", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - occurrenceRange_field: RangeModel = Field(default=None, alias="occurrenceRange", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.") - recorded_field: dateTimeModel = Field(default=None, alias="recorded", description="The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).") - recorder_field: ReferenceModel = Field(default=None, alias="recorder", description="Individual who recorded the record and takes responsibility for its content.") - reportedReference_field: ReferenceModel = Field(default=None, alias="reportedReference", description="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.") - performer_field: List[Procedure_PerformerModel] = Field(default_factory=list, alias="performer", description="Indicates who or what performed the procedure and how they were involved.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The coded reason or reference why the procedure was performed. This may be a coded entity of some type, be present as text, or be a reference to one of several resources that justify the procedure.") - bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.") - outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="The outcome of the procedure - did it resolve the reasons for the procedure being performed?") - report_field: List[ReferenceModel] = Field(default_factory=list, alias="report", description="This could be a histology result, pathology report, surgical report, etc.") - complication_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="complication", description="Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.") - followUp_field: List[CodeableConceptModel] = Field(default_factory=list, alias="followUp", description="If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any other notes and comments about the procedure.") - focalDevice_field: List[Procedure_FocalDeviceModel] = Field(default_factory=list, alias="focalDevice", description="A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.") - used_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="used", description="Identifies medications, devices and any other substance used as part of the procedure.") - supportingInfo_field: List[ReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available.") - -class Procedure_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Indicates who or what performed the procedure.") - onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="The Organization the Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf of.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the performer performed the procedure.") - -class Procedure_FocalDeviceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - action_field: CodeableConceptModel = Field(default=None, alias="action", description="The kind of change that happened to the device during the procedure.") - manipulated_field: ReferenceModel = Field(default=None, alias="manipulated", description="The device that was manipulated (changed) during the procedure.") - -class ProvenanceModel(BaseModel): - resourceType_field: str = "Provenance" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - target_field: List[ReferenceModel] = Field(default_factory=list, alias="target", description="The Reference(s) that were generated or updated by the activity described in this resource. A provenance can point to more than one target if multiple resources were created/updated by the same activity.") - occurredPeriod_field: PeriodModel = Field(default=None, alias="occurredPeriod", description="The period during which the activity occurred.") - recorded_field: instantModel = Field(default=None, alias="recorded", description="The instant of time at which the activity was recorded.") - policy_field: List[uriModel] = Field(default_factory=list, alias="policy", description="Policy or plan the activity was defined by. Typically, a single activity may have multiple applicable policy documents, such as patient consent, guarantor funding, etc.") - location_field: ReferenceModel = Field(default=None, alias="location", description="Where the activity occurred, if relevant.") - authorization_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="authorization", description="The authorization (e.g., PurposeOfUse) that was used during the event being recorded.") - activity_field: CodeableConceptModel = Field(default=None, alias="activity", description="An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Allows tracing of authorizatino for the events and tracking whether proposals/recommendations were acted upon.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient element is available to enable deterministic tracking of activities that involve the patient as the subject of the data used in an activity.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="This will typically be the encounter the event occurred, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).") - agent_field: List[Provenance_AgentModel] = Field(default_factory=list, alias="agent", description="An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place.") - entity_field: List[Provenance_EntityModel] = Field(default_factory=list, alias="entity", description="An entity used in this activity.") - signature_field: List[SignatureModel] = Field(default_factory=list, alias="signature", description="A digital signature on the target Reference(s). The signer should match a Provenance.agent. The purpose of the signature is indicated.") - -class Provenance_AgentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The Functional Role of the agent with respect to the activity.") - role_field: List[CodeableConceptModel] = Field(default_factory=list, alias="role", description="The structural roles of the agent indicating the agent's competency. The security role enabling the agent with respect to the activity.") - who_field: ReferenceModel = Field(default=None, alias="who", description="Indicates who or what performed in the event.") - onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="The agent that delegated authority to perform the activity performed by the agent.who element.") - -class Provenance_EntityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: codeModel = Field(default=None, alias="role", description="How the entity was used during the activity.") - what_field: ReferenceModel = Field(default=None, alias="what", description="Identity of the Entity used. May be a logical or physical uri and maybe absolute or relative.") - agent_field: List[Provenance_AgentModel] = Field(default_factory=list, alias="agent", description="The entity is attributed to an agent to express the agent's responsibility for that entity, possibly along with other agents. This description can be understood as shorthand for saying that the agent was responsible for the activity which used the entity.") - -class QuestionnaireModel(BaseModel): - resourceType_field: str = "Questionnaire" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this questionnaire when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the questionnaire.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of this questionnaire.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the questionnaire was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the questionnaire changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the questionnaire.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the questionnaire from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate questionnaires.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the questionnaire is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this questionnaire is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the questionnaire content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="The URL of a Questionnaire that this Questionnaire is based on.") - subjectType_field: List[codeModel] = Field(default_factory=list, alias="subjectType", description="The types of subjects that can be the subject of responses created for the questionnaire.") - code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="An identifier for this collection of questions in a particular terminology such as LOINC.") - item_field: List[Questionnaire_ItemModel] = Field(default_factory=list, alias="item", description="A particular question, question grouping or display text that is part of the questionnaire.") - -class Questionnaire_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.") - definition_field: uriModel = Field(default=None, alias="definition", description="This element is a URI that refers to an [ElementDefinition](elementdefinition.html) or to an [ObservationDefinition](observationdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in [Comments](questionnaire.html#definition), below.") - code_field: List[CodingModel] = Field(default_factory=list, alias="code", description="A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).") - prefix_field: stringModel = Field(default=None, alias="prefix", description="A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.") - text_field: stringModel = Field(default=None, alias="text", description="The name of a section, the text of a question or text content for a display item.") - type_field: codeModel = Field(default=None, alias="type", description="The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, Coding, etc.).") - enableWhen_field: List[Questionnaire_EnableWhenModel] = Field(default_factory=list, alias="enableWhen", description="A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true.") - enableBehavior_field: codeModel = Field(default=None, alias="enableBehavior", description="Controls how multiple enableWhen values are interpreted - whether all or any must be true.") - disabledDisplay_field: codeModel = Field(default=None, alias="disabledDisplay", description="Indicates if and how items that are disabled (because enableWhen evaluates to 'false') should be displayed.") - required_field: booleanModel = Field(default=None, alias="required", description="An indication, if true, that the item must be present in a completed QuestionnaireResponse. If false, the item may be skipped when answering the questionnaire.") - repeats_field: booleanModel = Field(default=None, alias="repeats", description="An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items).") - readOnly_field: booleanModel = Field(default=None, alias="readOnly", description="An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.") - maxLength_field: integerModel = Field(default=None, alias="maxLength", description="The maximum number of characters that are permitted in the answer to be considered a valid QuestionnaireResponse.") - answerConstraint_field: codeModel = Field(default=None, alias="answerConstraint", description="For items that have a defined set of allowed answers (via answerOption or answerValueSet), indicates whether values *other* than those specified can be selected.") - answerValueSet_field: canonicalModel = Field(default=None, alias="answerValueSet", description="A reference to a value set containing a list of values representing permitted answers for a question.") - answerOption_field: List[Questionnaire_AnswerOptionModel] = Field(default_factory=list, alias="answerOption", description="One of the permitted answers for the question.") - initial_field: List[Questionnaire_InitialModel] = Field(default_factory=list, alias="initial", description="One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input.") - item_field: List[Questionnaire_ItemModel] = Field(default_factory=list, alias="item", description="Text, questions and other groups to be nested beneath a question or group.") - -class Questionnaire_EnableWhenModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - question_field: stringModel = Field(default=None, alias="question", description="The linkId for the question whose answer (or lack of answer) governs whether this item is enabled.") - operator_field: codeModel = Field(default=None, alias="operator", description="Specifies the criteria by which the question is enabled.") - answerCoding_field: CodingModel = Field(default=None, alias="answerCoding", description="A value that the referenced question is tested using the specified operator in order for the item to be enabled. If there are multiple answers, a match on any of the answers suffices. If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.") - answerQuantity_field: QuantityModel = Field(default=None, alias="answerQuantity", description="A value that the referenced question is tested using the specified operator in order for the item to be enabled. If there are multiple answers, a match on any of the answers suffices. If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.") - answerReference_field: ReferenceModel = Field(default=None, alias="answerReference", description="A value that the referenced question is tested using the specified operator in order for the item to be enabled. If there are multiple answers, a match on any of the answers suffices. If different behavior is desired (all must match, at least 2 must match, etc.), consider using the enableWhenExpression extension.") - -class Questionnaire_AnswerOptionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="A potential answer that's allowed as the answer to this question.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="A potential answer that's allowed as the answer to this question.") - initialSelected_field: booleanModel = Field(default=None, alias="initialSelected", description="Indicates whether the answer value is selected when the list of possible answers is initially shown.") - -class Questionnaire_InitialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The actual value to for an initial answer.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The actual value to for an initial answer.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The actual value to for an initial answer.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The actual value to for an initial answer.") - -class QuestionnaireResponseModel(BaseModel): - resourceType_field: str = "QuestionnaireResponse" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this questionnaire response by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this questionnaire response. For example, a ServiceRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.") - questionnaire_field: canonicalModel = Field(default=None, alias="questionnaire", description="The Questionnaire that defines and organizes the questions for which answers are being provided.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the questionnaire response.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The Encounter during which this questionnaire response was created or to which the creation of this record is tightly associated.") - authored_field: dateTimeModel = Field(default=None, alias="authored", description="The date and/or time that this questionnaire response was last modified by the user - e.g. changing answers or revising status.") - author_field: ReferenceModel = Field(default=None, alias="author", description="The individual or device that received the answers to the questions in the QuestionnaireResponse and recorded them in the system.") - source_field: ReferenceModel = Field(default=None, alias="source", description="The individual or device that answered the questions about the subject.") - item_field: List[QuestionnaireResponse_ItemModel] = Field(default_factory=list, alias="item", description="A group or question item from the original questionnaire for which answers are provided.") - -class QuestionnaireResponse_ItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource.") - definition_field: uriModel = Field(default=None, alias="definition", description="A reference to an [ElementDefinition](elementdefinition.html) that provides the details for the item.") - text_field: stringModel = Field(default=None, alias="text", description="Text that is displayed above the contents of the group or as the text of the question being answered.") - answer_field: List[QuestionnaireResponse_AnswerModel] = Field(default_factory=list, alias="answer", description="The respondent's answer(s) to the question.") - item_field: List[QuestionnaireResponse_ItemModel] = Field(default_factory=list, alias="item", description="Sub-questions, sub-groups or display items nested beneath a group.") - -class QuestionnaireResponse_AnswerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The answer (or one of the answers) provided by the respondent to the question.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The answer (or one of the answers) provided by the respondent to the question.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The answer (or one of the answers) provided by the respondent to the question.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The answer (or one of the answers) provided by the respondent to the question.") - item_field: List[QuestionnaireResponse_ItemModel] = Field(default_factory=list, alias="item", description="Nested groups and/or questions found within this particular answer.") - -class RegulatedAuthorizationModel(BaseModel): - resourceType_field: str = "RegulatedAuthorization" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier for the authorization, typically assigned by the authorizing body.") - subject_field: List[ReferenceModel] = Field(default_factory=list, alias="subject", description="The product type, treatment, facility or activity that is being authorized.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Overall type of this authorization, for example drug marketing approval, orphan drug designation.") - description_field: markdownModel = Field(default=None, alias="description", description="General textual supporting information.") - region_field: List[CodeableConceptModel] = Field(default_factory=list, alias="region", description="The territory (e.g., country, jurisdiction etc.) in which the authorization has been granted.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status that is authorised e.g. approved. Intermediate states and actions can be tracked with cases and applications.") - statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the current status was assigned.") - validityPeriod_field: PeriodModel = Field(default=None, alias="validityPeriod", description="The time period in which the regulatory approval, clearance or licencing is in effect. As an example, a Marketing Authorization includes the date of authorization and/or an expiration date.") - indication_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="indication", description="Condition for which the use of the regulated product applies.") - intendedUse_field: CodeableConceptModel = Field(default=None, alias="intendedUse", description="The intended use of the product, e.g. prevention, treatment, diagnosis.") - basis_field: List[CodeableConceptModel] = Field(default_factory=list, alias="basis", description="The legal or regulatory framework against which this authorization is granted, or other reasons for it.") - holder_field: ReferenceModel = Field(default=None, alias="holder", description="The organization that has been granted this authorization, by some authoritative body (the 'regulator').") - regulator_field: ReferenceModel = Field(default=None, alias="regulator", description="The regulatory authority or authorizing body granting the authorization. For example, European Medicines Agency (EMA), Food and Drug Administration (FDA), Health Canada (HC), etc.") - attachedDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="attachedDocument", description="Additional information or supporting documentation about the authorization.") - case_field: RegulatedAuthorization_CaseModel = Field(default=None, alias="case", description="The case or regulatory procedure for granting or amending a regulated authorization. An authorization is granted in response to submissions/applications by those seeking authorization. A case is the administrative process that deals with the application(s) that relate to this and assesses them. Note: This area is subject to ongoing review and the workgroup is seeking implementer feedback on its use (see link at bottom of page).") - -class RegulatedAuthorization_CaseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifier by which this case can be referenced.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The defining type of case.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status associated with the case.") - datePeriod_field: PeriodModel = Field(default=None, alias="datePeriod", description="Relevant date for this case.") - application_field: List[RegulatedAuthorization_CaseModel] = Field(default_factory=list, alias="application", description="A regulatory submission from an organization to a regulator, as part of an assessing case. Multiple applications may occur over time, with more or different information to support or modify the submission or the authorization. The applications can be considered as steps within the longer running case or procedure for this authorization process.") - -class RelatedPersonModel(BaseModel): - resourceType_field: str = "RelatedPerson" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for a person within a particular scope.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this related person record is in active use.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="The patient this person is related to.") - relationship_field: List[CodeableConceptModel] = Field(default_factory=list, alias="relationship", description="The nature of the relationship between the related person and the patient.") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the person.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.") - birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date on which the related person was born.") - address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="Address where the related person can be contacted or visited.") - photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the person.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.") - communication_field: List[RelatedPerson_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the related person about the patient's health.") - -class RelatedPerson_CommunicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).") - -class RequestOrchestrationModel(BaseModel): - resourceType_field: str = "RequestOrchestration" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Allows a service to provide a unique, business identifier for the request.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="A canonical URL referencing a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this request.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="A URL referencing an externally defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this request.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this request.") - replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="Completed or terminated request(s) whose function is taken by this new request.") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the request. For request orchestrations, the status reflects the status of all the requests in the orchestration.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of authority/intentionality associated with the request and where the request fits into the workflow chain.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the request should be addressed with respect to other requests.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code that identifies what the overall request orchestration is.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The subject for which the request orchestration was created.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="Describes the context of the request orchestration, if any.") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="Indicates when the request orchestration was created.") - author_field: ReferenceModel = Field(default=None, alias="author", description="Provides a reference to the author of the request orchestration.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="Describes the reason for the request orchestration in coded or textual form.") - goal_field: List[ReferenceModel] = Field(default_factory=list, alias="goal", description="Goals that are intended to be achieved by following the requests in this RequestOrchestration.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Provides a mechanism to communicate additional information about the response.") - action_field: List[RequestOrchestration_ActionModel] = Field(default_factory=list, alias="action", description="The actions, if any, produced by the evaluation of the artifact.") - -class RequestOrchestration_ActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: stringModel = Field(default=None, alias="linkId", description="The linkId of the action from the PlanDefinition that corresponds to this action in the RequestOrchestration resource.") - prefix_field: stringModel = Field(default=None, alias="prefix", description="A user-visible prefix for the action. For example a section or item numbering such as 1. or A.") - title_field: stringModel = Field(default=None, alias="title", description="The title of the action displayed to a user.") - description_field: markdownModel = Field(default=None, alias="description", description="A short description of the action used to provide a summary to display to the user.") - textEquivalent_field: markdownModel = Field(default=None, alias="textEquivalent", description="A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamically.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the action should be addressed with respect to other actions.") - code_field: List[CodeableConceptModel] = Field(default_factory=list, alias="code", description="A code that provides meaning for the action or action group. For example, a section may have a LOINC code for a section of a documentation template.") - documentation_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="documentation", description="Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resources.") - goal_field: List[ReferenceModel] = Field(default_factory=list, alias="goal", description="Goals that are intended to be achieved by following the requests in this action.") - condition_field: List[RequestOrchestration_ConditionModel] = Field(default_factory=list, alias="condition", description="An expression that describes applicability criteria, or start/stop conditions for the action.") - input_field: List[RequestOrchestration_InputModel] = Field(default_factory=list, alias="input", description="Defines input data requirements for the action.") - output_field: List[RequestOrchestration_OutputModel] = Field(default_factory=list, alias="output", description="Defines the outputs of the action, if any.") - relatedAction_field: List[RequestOrchestration_RelatedActionModel] = Field(default_factory=list, alias="relatedAction", description="A relationship to another action such as before or 30-60 minutes after start of.") - timingAge_field: AgeModel = Field(default=None, alias="timingAge", description="An optional value describing when the action should be performed.") - timingPeriod_field: PeriodModel = Field(default=None, alias="timingPeriod", description="An optional value describing when the action should be performed.") - timingDuration_field: DurationModel = Field(default=None, alias="timingDuration", description="An optional value describing when the action should be performed.") - timingRange_field: RangeModel = Field(default=None, alias="timingRange", description="An optional value describing when the action should be performed.") - timingTiming_field: TimingModel = Field(default=None, alias="timingTiming", description="An optional value describing when the action should be performed.") - location_field: CodeableReferenceModel = Field(default=None, alias="location", description="Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc.") - participant_field: List[RequestOrchestration_ParticipantModel] = Field(default_factory=list, alias="participant", description="The participant that should perform or be responsible for this action.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of action to perform (create, update, remove).") - groupingBehavior_field: codeModel = Field(default=None, alias="groupingBehavior", description="Defines the grouping behavior for the action and its children.") - selectionBehavior_field: codeModel = Field(default=None, alias="selectionBehavior", description="Defines the selection behavior for the action and its children.") - requiredBehavior_field: codeModel = Field(default=None, alias="requiredBehavior", description="Defines expectations around whether an action is required.") - precheckBehavior_field: codeModel = Field(default=None, alias="precheckBehavior", description="Defines whether the action should usually be preselected.") - cardinalityBehavior_field: codeModel = Field(default=None, alias="cardinalityBehavior", description="Defines whether the action can be selected multiple times.") - resource_field: ReferenceModel = Field(default=None, alias="resource", description="The resource that is the target of the action (e.g. CommunicationRequest).") - transform_field: canonicalModel = Field(default=None, alias="transform", description="A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.") - dynamicValue_field: List[RequestOrchestration_DynamicValueModel] = Field(default_factory=list, alias="dynamicValue", description="Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the result.") - action_field: List[RequestOrchestration_ActionModel] = Field(default_factory=list, alias="action", description="Sub actions.") - -class RequestOrchestration_ConditionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - kind_field: codeModel = Field(default=None, alias="kind", description="The kind of condition.") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression that returns true or false, indicating whether or not the condition is satisfied.") - -class RequestOrchestration_InputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") - requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that is to be provided as input to the action.") - relatedData_field: idModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that provides data to this input.") - -class RequestOrchestration_OutputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - title_field: stringModel = Field(default=None, alias="title", description="A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers.") - requirement_field: DataRequirementModel = Field(default=None, alias="requirement", description="Defines the data that results as output from the action.") - relatedData_field: stringModel = Field(default=None, alias="relatedData", description="Points to an existing input or output element that is results as output from the action.") - -class RequestOrchestration_RelatedActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - targetId_field: idModel = Field(default=None, alias="targetId", description="The element id of the target related action.") - relationship_field: codeModel = Field(default=None, alias="relationship", description="The relationship of this action to the related action.") - endRelationship_field: codeModel = Field(default=None, alias="endRelationship", description="The relationship of the end of this action to the related action.") - offsetDuration_field: DurationModel = Field(default=None, alias="offsetDuration", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") - offsetRange_field: RangeModel = Field(default=None, alias="offsetRange", description="A duration or range of durations to apply to the relationship. For example, 30-60 minutes before.") - -class RequestOrchestration_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of participant in the action.") - typeCanonical_field: canonicalModel = Field(default=None, alias="typeCanonical", description="The type of participant in the action.") - typeReference_field: ReferenceModel = Field(default=None, alias="typeReference", description="The type of participant in the action.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="The role the participant should play in performing the described action.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="Indicates how the actor will be involved in the action - author, reviewer, witness, etc.") - actorReference_field: ReferenceModel = Field(default=None, alias="actorReference", description="A reference to the actual participant.") - -class RequestOrchestration_DynamicValueModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - path_field: stringModel = Field(default=None, alias="path", description="The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details).") - expression_field: ExpressionModel = Field(default=None, alias="expression", description="An expression specifying the value of the customized element.") - -class RequirementsModel(BaseModel): - resourceType_field: str = "Requirements" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this Requirements when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Requirements is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Requirements is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this Requirements when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the Requirements when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the Requirements author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the Requirements. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the Requirements.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this Requirements. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this Requirements is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the Requirements was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the Requirements changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the Requirements.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the requirements.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Requirements instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the Requirements is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this Requirements is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the Requirements and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the Requirements.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="Another set of Requirements that this set of Requirements builds on and updates.") - reference_field: List[urlModel] = Field(default_factory=list, alias="reference", description="A reference to another artifact that created this set of requirements. This could be a Profile, etc., or external regulation, or business requirements expressed elsewhere.") - actor_field: List[canonicalModel] = Field(default_factory=list, alias="actor", description="An actor these requirements are in regard to.") - statement_field: List[Requirements_StatementModel] = Field(default_factory=list, alias="statement", description="The actual statement of requirement, in markdown format.") - -class Requirements_StatementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - key_field: idModel = Field(default=None, alias="key", description="Key that identifies this statement (unique within this resource).") - label_field: stringModel = Field(default=None, alias="label", description="A short human usable label for this statement.") - conformance_field: List[codeModel] = Field(default_factory=list, alias="conformance", description="A short human usable label for this statement.") - conditionality_field: booleanModel = Field(default=None, alias="conditionality", description="This boolean flag is set to true of the text of the requirement is conditional on something e.g. it includes lanauage like 'if x then y'. This conditionality flag is introduced for purposes of filtering and colour highlighting etc.") - requirement_field: markdownModel = Field(default=None, alias="requirement", description="The actual requirement for human consumption.") - derivedFrom_field: stringModel = Field(default=None, alias="derivedFrom", description="Another statement on one of the requirements that this requirement clarifies or restricts.") - parent_field: stringModel = Field(default=None, alias="parent", description="A larger requirement that this requirement helps to refine and enable.") - satisfiedBy_field: List[urlModel] = Field(default_factory=list, alias="satisfiedBy", description="A reference to another artifact that satisfies this requirement. This could be a Profile, extension, or an element in one of those, or a CapabilityStatement, OperationDefinition, SearchParameter, CodeSystem(/code), ValueSet, Libary etc.") - reference_field: List[urlModel] = Field(default_factory=list, alias="reference", description="A reference to another artifact that created this requirement. This could be a Profile, etc., or external regulation, or business requirements expressed elsewhere.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Who asked for this statement to be a requirement. By default, it's assumed that the publisher knows who it is if it matters.") - -class ResearchStudyModel(BaseModel): - resourceType_field: str = "ResearchStudy" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="Canonical identifier for this study resource, represented as a globally unique URI.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this research study by the sponsor or other systems.") - version_field: stringModel = Field(default=None, alias="version", description="The business version for the study record.") - name_field: stringModel = Field(default=None, alias="name", description="Name for this study (computer friendly).") - title_field: stringModel = Field(default=None, alias="title", description="The human readable name of the research study.") - label_field: List[ResearchStudy_LabelModel] = Field(default_factory=list, alias="label", description="Additional names for the study.") - protocol_field: List[ReferenceModel] = Field(default_factory=list, alias="protocol", description="The set of steps expected to be performed as part of the execution of the study.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger research study of which this particular study is a component or step.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Citations, references, URLs and other related documents. When using relatedArtifact to share URLs, the relatedArtifact.type will often be set to one of documentation or supported-with and the URL value will often be in relatedArtifact.document.url but another possible location is relatedArtifact.resource when it is a canonical URL.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the ResearchStudy Resource was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the ResearchStudy Resource changes.") - status_field: codeModel = Field(default=None, alias="status", description="The publication state of the resource (not of the study).") - primaryPurposeType_field: CodeableConceptModel = Field(default=None, alias="primaryPurposeType", description="The type of study based upon the intent of the study activities. A classification of the intent of the study.") - phase_field: CodeableConceptModel = Field(default=None, alias="phase", description="The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation.") - studyDesign_field: List[CodeableConceptModel] = Field(default_factory=list, alias="studyDesign", description="Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc.") - focus_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="focus", description="The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about.") - condition_field: List[CodeableConceptModel] = Field(default_factory=list, alias="condition", description="The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion healthy volunteer, but the target condition code would be a Lupus SNOMED code.") - keyword_field: List[CodeableConceptModel] = Field(default_factory=list, alias="keyword", description="Key terms to aid in searching for or filtering the study.") - region_field: List[CodeableConceptModel] = Field(default_factory=list, alias="region", description="A country, state or other area where the study is taking place rather than its precise geographic location or address.") - descriptionSummary_field: markdownModel = Field(default=None, alias="descriptionSummary", description="A brief text for explaining the study.") - description_field: markdownModel = Field(default=None, alias="description", description="A detailed and human-readable narrative of the study. E.g., study abstract.") - period_field: PeriodModel = Field(default=None, alias="period", description="Identifies the start date and the expected (or actual, depending on status) end date for the study.") - site_field: List[ReferenceModel] = Field(default_factory=list, alias="site", description="A facility in which study activities are conducted.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Comments made about the study by the performer, subject or other participants.") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="Additional grouping mechanism or categorization of a research study. Example: FDA regulated device, FDA regulated drug, MPG Paragraph 23b (a German legal requirement), IRB-exempt, etc. Implementation Note: do not use the classifier element to support existing semantics that are already supported thru explicit elements in the resource.") - associatedParty_field: List[ResearchStudy_AssociatedPartyModel] = Field(default_factory=list, alias="associatedParty", description="Sponsors, collaborators, and other parties.") - progressStatus_field: List[ResearchStudy_ProgressStatusModel] = Field(default_factory=list, alias="progressStatus", description="Status of study with time for that status.") - whyStopped_field: CodeableConceptModel = Field(default=None, alias="whyStopped", description="A description and/or code explaining the premature termination of the study.") - recruitment_field: ResearchStudy_RecruitmentModel = Field(default=None, alias="recruitment", description="Target or actual group of participants enrolled in study.") - comparisonGroup_field: List[ResearchStudy_ComparisonGroupModel] = Field(default_factory=list, alias="comparisonGroup", description="Describes an expected event or sequence of events for one of the subjects of a study. E.g. for a living subject: exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up. E.g. for a stability study: {store sample from lot A at 25 degrees for 1 month}, {store sample from lot A at 40 degrees for 1 month}.") - objective_field: List[ResearchStudy_ObjectiveModel] = Field(default_factory=list, alias="objective", description="A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study.") - outcomeMeasure_field: List[ResearchStudy_OutcomeMeasureModel] = Field(default_factory=list, alias="outcomeMeasure", description="An outcome measure, endpoint, effect measure or measure of effect is a specific measurement or observation used to quantify the effect of experimental variables on the participants in a study, or for observational studies, to describe patterns of diseases or traits or associations with exposures, risk factors or treatment.") - result_field: List[ReferenceModel] = Field(default_factory=list, alias="result", description="Link to one or more sets of results generated by the study. Could also link to a research registry holding the results such as ClinicalTrials.gov.") - -class ResearchStudy_LabelModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Kind of name.") - value_field: stringModel = Field(default=None, alias="value", description="The name.") - -class ResearchStudy_AssociatedPartyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Name of associated party.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Type of association.") - period_field: List[PeriodModel] = Field(default_factory=list, alias="period", description="Identifies the start date and the end date of the associated party in the role.") - classifier_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classifier", description="A categorization other than role for the associated party.") - party_field: ReferenceModel = Field(default=None, alias="party", description="Individual or organization associated with study (use practitionerRole to specify their organisation).") - -class ResearchStudy_ProgressStatusModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - state_field: CodeableConceptModel = Field(default=None, alias="state", description="Label for status or state (e.g. recruitment status).") - actual_field: booleanModel = Field(default=None, alias="actual", description="An indication of whether or not the date is a known date when the state changed or will change. A value of true indicates a known date. A value of false indicates an estimated date.") - period_field: PeriodModel = Field(default=None, alias="period", description="Date range.") - -class ResearchStudy_RecruitmentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - targetNumber_field: unsignedIntModel = Field(default=None, alias="targetNumber", description="Estimated total number of participants to be enrolled.") - actualNumber_field: unsignedIntModel = Field(default=None, alias="actualNumber", description="Actual total number of participants enrolled in study.") - eligibility_field: ReferenceModel = Field(default=None, alias="eligibility", description="Inclusion and exclusion criteria.") - actualGroup_field: ReferenceModel = Field(default=None, alias="actualGroup", description="Group of participants who were enrolled in study.") - -class ResearchStudy_ComparisonGroupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - linkId_field: idModel = Field(default=None, alias="linkId", description="Allows the comparisonGroup for the study and the comparisonGroup for the subject to be linked easily.") - name_field: stringModel = Field(default=None, alias="name", description="Unique, human-readable label for this comparisonGroup of the study.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Categorization of study comparisonGroup, e.g. experimental, active comparator, placebo comparater.") - description_field: markdownModel = Field(default=None, alias="description", description="A succinct description of the path through the study that would be followed by a subject adhering to this comparisonGroup.") - intendedExposure_field: List[ReferenceModel] = Field(default_factory=list, alias="intendedExposure", description="Interventions or exposures in this comparisonGroup or cohort.") - observedGroup_field: ReferenceModel = Field(default=None, alias="observedGroup", description="Group of participants who were enrolled in study comparisonGroup.") - -class ResearchStudy_ObjectiveModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Unique, human-readable label for this objective of the study.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of study objective.") - description_field: markdownModel = Field(default=None, alias="description", description="Free text description of the objective of the study. This is what the study is trying to achieve rather than how it is going to achieve it (see ResearchStudy.description).") - -class ResearchStudy_OutcomeMeasureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Label for the outcome.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The parameter or characteristic being assessed as one of the values by which the study is assessed.") - description_field: markdownModel = Field(default=None, alias="description", description="Description of the outcome.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="Structured outcome definition.") - -class ResearchSubjectModel(BaseModel): - resourceType_field: str = "ResearchSubject" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this research subject for a study.") - status_field: codeModel = Field(default=None, alias="status", description="The publication state of the resource (not of the subject).") - progress_field: List[ResearchSubject_ProgressModel] = Field(default_factory=list, alias="progress", description="The current state (status) of the subject and resons for status change where appropriate.") - period_field: PeriodModel = Field(default=None, alias="period", description="The dates the subject began and ended their participation in the study.") - study_field: ReferenceModel = Field(default=None, alias="study", description="Reference to the study the subject is participating in.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The record of the person, animal or other entity involved in the study.") - assignedComparisonGroup_field: idModel = Field(default=None, alias="assignedComparisonGroup", description="The name of the arm in the study the subject is expected to follow as part of this study.") - actualComparisonGroup_field: idModel = Field(default=None, alias="actualComparisonGroup", description="The name of the arm in the study the subject actually followed as part of this study.") - consent_field: List[ReferenceModel] = Field(default_factory=list, alias="consent", description="A record of the patient's informed agreement to participate in the study.") - -class ResearchSubject_ProgressModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Identifies the aspect of the subject's journey that the state refers to.") - subjectState_field: CodeableConceptModel = Field(default=None, alias="subjectState", description="The current state of the subject.") - milestone_field: CodeableConceptModel = Field(default=None, alias="milestone", description="The milestones the subject has passed through.") - reason_field: CodeableConceptModel = Field(default=None, alias="reason", description="The reason for the state change. If coded it should follow the formal subject state model.") - startDate_field: dateTimeModel = Field(default=None, alias="startDate", description="The date when the new status started.") - endDate_field: dateTimeModel = Field(default=None, alias="endDate", description="The date when the state ended.") - -class RiskAssessmentModel(BaseModel): - resourceType_field: str = "RiskAssessment" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifier assigned to the risk assessment.") - basedOn_field: ReferenceModel = Field(default=None, alias="basedOn", description="A reference to the request that is fulfilled by this risk assessment.") - parent_field: ReferenceModel = Field(default=None, alias="parent", description="A reference to a resource that this risk assessment is part of, such as a Procedure.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the RiskAssessment, using the same statuses as an Observation.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="The algorithm, process or mechanism used to evaluate the risk.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of the risk assessment performed.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group the risk assessment applies to.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The encounter where the assessment was performed.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date (and possibly time) the risk assessment was performed.") - condition_field: ReferenceModel = Field(default=None, alias="condition", description="For assessments or prognosis specific to a particular condition, indicates the condition being assessed.") - performer_field: ReferenceModel = Field(default=None, alias="performer", description="The provider, patient, related person, or software application that performed the assessment.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason the risk assessment was performed.") - basis_field: List[ReferenceModel] = Field(default_factory=list, alias="basis", description="Indicates the source data considered as part of the assessment (for example, FamilyHistory, Observations, Procedures, Conditions, etc.).") - prediction_field: List[RiskAssessment_PredictionModel] = Field(default_factory=list, alias="prediction", description="Describes the expected outcome for the subject.") - mitigation_field: stringModel = Field(default=None, alias="mitigation", description="A description of the steps that might be taken to reduce the identified risk(s).") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Additional comments about the risk assessment.") - -class RiskAssessment_PredictionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - outcome_field: CodeableConceptModel = Field(default=None, alias="outcome", description="One of the potential outcomes for the patient (e.g. remission, death, a particular condition).") - probabilityRange_field: RangeModel = Field(default=None, alias="probabilityRange", description="Indicates how likely the outcome is (in the specified timeframe).") - qualitativeRisk_field: CodeableConceptModel = Field(default=None, alias="qualitativeRisk", description="Indicates how likely the outcome is (in the specified timeframe), expressed as a qualitative value (e.g. low, medium, or high).") - relativeRisk_field: decimalModel = Field(default=None, alias="relativeRisk", description="Indicates the risk for this particular subject (with their specific characteristics) divided by the risk of the population in general. (Numbers greater than 1 = higher risk than the population, numbers less than 1 = lower risk.).") - whenPeriod_field: PeriodModel = Field(default=None, alias="whenPeriod", description="Indicates the period of time or age range of the subject to which the specified probability applies.") - whenRange_field: RangeModel = Field(default=None, alias="whenRange", description="Indicates the period of time or age range of the subject to which the specified probability applies.") - rationale_field: stringModel = Field(default=None, alias="rationale", description="Additional information explaining the basis for the prediction.") - -class ScheduleModel(BaseModel): - resourceType_field: str = "Schedule" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="External Ids for this item.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this schedule record is in active use or should not be used (such as was entered in error).") - serviceCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceCategory", description="A broad categorization of the service that is to be performed during this appointment.") - serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="The specific service that is to be performed during this appointment.") - specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment.") - name_field: stringModel = Field(default=None, alias="name", description="Further description of the schedule as it would be presented to a consumer while searching.") - actor_field: List[ReferenceModel] = Field(default_factory=list, alias="actor", description="Slots that reference this schedule resource provide the availability details to these referenced resource(s).") - planningHorizon_field: PeriodModel = Field(default=None, alias="planningHorizon", description="The period of time that the slots that reference this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a template for planning outside these dates.") - comment_field: markdownModel = Field(default=None, alias="comment", description="Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated.") - -class SearchParameterModel(BaseModel): - resourceType_field: str = "SearchParameter" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this search parameter when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the search parameter.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this search parameter. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the search parameter was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual tresponsible for the release and ongoing maintenance of the search parameter.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="And how it used.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the search parameter is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this search parameter is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the search parameter and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the search parameter.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - derivedFrom_field: canonicalModel = Field(default=None, alias="derivedFrom", description="Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.") - code_field: codeModel = Field(default=None, alias="code", description="The label that is recommended to be used in the URL or the parameter name in a parameters resource for this search parameter. In some cases, servers may need to use a different CapabilityStatement searchParam.name to differentiate between multiple SearchParameters that happen to have the same code.") - base_field: List[codeModel] = Field(default_factory=list, alias="base", description="The base resource type(s) that this search parameter can be used against.") - type_field: codeModel = Field(default=None, alias="type", description="The type of value that a search parameter may contain, and how the content is interpreted.") - expression_field: stringModel = Field(default=None, alias="expression", description="A FHIRPath expression that returns a set of elements for the search parameter.") - processingMode_field: codeModel = Field(default=None, alias="processingMode", description="How the search parameter relates to the set of elements returned by evaluating the expression query.") - constraint_field: stringModel = Field(default=None, alias="constraint", description="FHIRPath expression that defines/sets a complex constraint for when this SearchParameter is applicable.") - target_field: List[codeModel] = Field(default_factory=list, alias="target", description="Types of resource (if a resource is referenced).") - multipleOr_field: booleanModel = Field(default=None, alias="multipleOr", description="Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.") - multipleAnd_field: booleanModel = Field(default=None, alias="multipleAnd", description="Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.") - comparator_field: List[codeModel] = Field(default_factory=list, alias="comparator", description="Comparators supported for the search parameter.") - modifier_field: List[codeModel] = Field(default_factory=list, alias="modifier", description="A modifier supported for the search parameter.") - chain_field: List[stringModel] = Field(default_factory=list, alias="chain", description="Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.") - component_field: List[SearchParameter_ComponentModel] = Field(default_factory=list, alias="component", description="Used to define the parts of a composite search parameter.") - -class SearchParameter_ComponentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - definition_field: canonicalModel = Field(default=None, alias="definition", description="The definition of the search parameter that describes this part.") - expression_field: stringModel = Field(default=None, alias="expression", description="A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.") - -class ServiceRequestModel(BaseModel): - resourceType_field: str = "ServiceRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.") - instantiatesCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="instantiatesCanonical", description="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.") - instantiatesUri_field: List[uriModel] = Field(default_factory=list, alias="instantiatesUri", description="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Plan/proposal/order fulfilled by this request.") - replaces_field: List[ReferenceModel] = Field(default_factory=list, alias="replaces", description="The request takes the place of the referenced completed or terminated request(s).") - requisition_field: IdentifierModel = Field(default=None, alias="requisition", description="A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the order.") - intent_field: codeModel = Field(default=None, alias="intent", description="Whether the request is a proposal, plan, an original order or a reflex order.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the service for searching, sorting and display purposes (e.g. Surgical Procedure).") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the ServiceRequest should be addressed with respect to other requests.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="Set this to true if the record is saying that the service/procedure should NOT be performed.") - code_field: CodeableReferenceModel = Field(default=None, alias="code", description="A code or reference that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.") - orderDetail_field: List[ServiceRequest_OrderDetailModel] = Field(default_factory=list, alias="orderDetail", description="Additional details and instructions about the how the services are to be delivered. For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.") - quantityQuantity_field: QuantityModel = Field(default=None, alias="quantityQuantity", description="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).") - quantityRatio_field: RatioModel = Field(default=None, alias="quantityRatio", description="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).") - quantityRange_field: RangeModel = Field(default=None, alias="quantityRange", description="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).") - focus_field: List[ReferenceModel] = Field(default_factory=list, alias="focus", description="The actual focus of a service request when it is not the subject of record representing something or someone associated with the subject such as a spouse, parent, fetus, or donor. The focus of a service request could also be an existing condition, an intervention, the subject's diet, another service request on the subject, or a body structure such as tumor or implanted device.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="An encounter that provides additional information about the healthcare context in which this request is made.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date/time at which the requested service should occur.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The date/time at which the requested service should occur.") - asNeededCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="asNeededCodeableConcept", description="If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example pain, on flare-up, etc.") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="When the request transitioned to being actionable.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The individual who initiated the request and has responsibility for its activation.") - performerType_field: CodeableConceptModel = Field(default=None, alias="performerType", description="Desired type of performer for doing the requested service.") - performer_field: List[ReferenceModel] = Field(default_factory=list, alias="performer", description="The desired performer for doing the requested service. For example, the surgeon, dermatopathologist, endoscopist, etc.") - location_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="location", description="The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="An explanation or justification for why this service is being requested in coded or textual form. This is often for billing purposes. May relate to the resources referred to in `supportingInfo`.") - insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.") - supportingInfo_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="supportingInfo", description="Additional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations. In laboratory ordering these are typically referred to as ask at order entry questions (AOEs). This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example, reporting the amount of inspired oxygen for blood gas measurements.") - specimen_field: List[ReferenceModel] = Field(default_factory=list, alias="specimen", description="One or more specimens that the laboratory procedure will use.") - bodySite_field: List[CodeableConceptModel] = Field(default_factory=list, alias="bodySite", description="Anatomic location where the procedure should be performed. This is the target site.") - bodyStructure_field: ReferenceModel = Field(default=None, alias="bodyStructure", description="Anatomic location where the procedure should be performed. This is the target site.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any other notes and comments made about the service request. For example, internal billing notes.") - patientInstruction_field: List[ServiceRequest_PatientInstructionModel] = Field(default_factory=list, alias="patientInstruction", description="Instructions in terms that are understood by the patient or consumer.") - relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Key events in the history of the request.") - -class ServiceRequest_OrderDetailModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - parameterFocus_field: CodeableReferenceModel = Field(default=None, alias="parameterFocus", description="Indicates the context of the order details by reference.") - parameter_field: List[ServiceRequest_ParameterModel] = Field(default_factory=list, alias="parameter", description="The parameter details for the service being requested.") - -class ServiceRequest_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A value representing the additional detail or instructions for the order (e.g., catheter insertion, body elevation, descriptive device configuration and/or setting instructions).") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="Indicates a value for the order detail.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="Indicates a value for the order detail.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="Indicates a value for the order detail.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="Indicates a value for the order detail.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="Indicates a value for the order detail.") - -class ServiceRequest_PatientInstructionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - instructionReference_field: ReferenceModel = Field(default=None, alias="instructionReference", description="Instructions in terms that are understood by the patient or consumer.") - -class SlotModel(BaseModel): - resourceType_field: str = "Slot" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="External Ids for this item.") - serviceCategory_field: List[CodeableConceptModel] = Field(default_factory=list, alias="serviceCategory", description="A broad categorization of the service that is to be performed during this appointment.") - serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the Schedule resource.") - specialty_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialty", description="The specialty of a practitioner that would be required to perform the service requested in this appointment.") - appointmentType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="appointmentType", description="The style of appointment or patient that may be booked in the slot (not service type).") - schedule_field: ReferenceModel = Field(default=None, alias="schedule", description="The schedule resource that this slot defines an interval of status information.") - status_field: codeModel = Field(default=None, alias="status", description="busy | free | busy-unavailable | busy-tentative | entered-in-error.") - start_field: instantModel = Field(default=None, alias="start", description="Date/Time that the slot is to begin.") - end_field: instantModel = Field(default=None, alias="end", description="Date/Time that the slot is to conclude.") - overbooked_field: booleanModel = Field(default=None, alias="overbooked", description="This slot has already been overbooked, appointments are unlikely to be accepted for this time.") - comment_field: stringModel = Field(default=None, alias="comment", description="Comments on the slot to describe any extended information. Such as custom constraints on the slot.") - -class SpecimenModel(BaseModel): - resourceType_field: str = "Specimen" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Id for specimen.") - accessionIdentifier_field: IdentifierModel = Field(default=None, alias="accessionIdentifier", description="The identifier assigned by the lab when accessioning specimen(s). This is not necessarily the same as the specimen identifier, depending on local lab procedures.") - status_field: codeModel = Field(default=None, alias="status", description="The availability of the specimen.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of material that forms the specimen.") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance, a biologically-derived product, or a device.") - receivedTime_field: dateTimeModel = Field(default=None, alias="receivedTime", description="Time when specimen is received by the testing laboratory for processing or testing.") - parent_field: List[ReferenceModel] = Field(default_factory=list, alias="parent", description="Reference to the parent (source) specimen which is used when the specimen was either derived from or a component of another specimen.") - request_field: List[ReferenceModel] = Field(default_factory=list, alias="request", description="Details concerning a service request that required a specimen to be collected.") - combined_field: codeModel = Field(default=None, alias="combined", description="This element signifies if the specimen is part of a group or pooled.") - role_field: List[CodeableConceptModel] = Field(default_factory=list, alias="role", description="The role or reason for the specimen in the testing workflow.") - feature_field: List[Specimen_FeatureModel] = Field(default_factory=list, alias="feature", description="A physical feature or landmark on a specimen, highlighted for context by the collector of the specimen (e.g. surgeon), that identifies the type of feature as well as its meaning (e.g. the red ink indicating the resection margin of the right lobe of the excised prostate tissue or wire loop at radiologically suspected tumor location).") - collection_field: Specimen_CollectionModel = Field(default=None, alias="collection", description="Details concerning the specimen collection.") - processing_field: List[Specimen_ProcessingModel] = Field(default_factory=list, alias="processing", description="Details concerning processing and processing steps for the specimen.") - container_field: List[Specimen_ContainerModel] = Field(default_factory=list, alias="container", description="The container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here.") - condition_field: List[CodeableConceptModel] = Field(default_factory=list, alias="condition", description="A mode or state of being that describes the nature of the specimen.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="To communicate any details or issues about the specimen or during the specimen collection. (for example: broken vial, sent with patient, frozen).") - -class Specimen_FeatureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The landmark or feature being highlighted.") - description_field: stringModel = Field(default=None, alias="description", description="Description of the feature of the specimen.") - -class Specimen_CollectionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - collector_field: ReferenceModel = Field(default=None, alias="collector", description="Person who collected the specimen.") - collectedPeriod_field: PeriodModel = Field(default=None, alias="collectedPeriod", description="Time when specimen was collected from subject - the physiologically relevant time.") - duration_field: DurationModel = Field(default=None, alias="duration", description="The span of time over which the collection of a specimen occurred.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The quantity of specimen collected; for instance the volume of a blood sample, or the physical measurement of an anatomic pathology sample.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="A coded value specifying the technique that is used to perform the procedure.") - device_field: CodeableReferenceModel = Field(default=None, alias="device", description="A coded value specifying the technique that is used to perform the procedure.") - procedure_field: ReferenceModel = Field(default=None, alias="procedure", description="The procedure event during which the specimen was collected (e.g. the surgery leading to the collection of a pathology sample).") - bodySite_field: CodeableReferenceModel = Field(default=None, alias="bodySite", description="Anatomical location from which the specimen was collected (if subject is a patient). This is the target site. This element is not used for environmental specimens.") - fastingStatusCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="fastingStatusCodeableConcept", description="Abstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection.") - fastingStatusDuration_field: DurationModel = Field(default=None, alias="fastingStatusDuration", description="Abstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection.") - -class Specimen_ProcessingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: stringModel = Field(default=None, alias="description", description="Textual description of procedure.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="A coded value specifying the method used to process the specimen.") - additive_field: List[ReferenceModel] = Field(default_factory=list, alias="additive", description="Material used in the processing step.") - timePeriod_field: PeriodModel = Field(default=None, alias="timePeriod", description="A record of the time or period when the specimen processing occurred. For example the time of sample fixation or the period of time the sample was in formalin.") - -class Specimen_ContainerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - device_field: ReferenceModel = Field(default=None, alias="device", description="The device resource for the the container holding the specimen. If the container is in a holder then the referenced device will point to a parent device.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location of the container holding the specimen.") - specimenQuantity_field: QuantityModel = Field(default=None, alias="specimenQuantity", description="The quantity of specimen in the container; may be volume, dimensions, or other appropriate measurements, depending on the specimen type.") - -class SpecimenDefinitionModel(BaseModel): - resourceType_field: str = "SpecimenDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URL that is used to identify this SpecimenDefinition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this SpecimenDefinition is (or will be) published. The URL SHOULD include the major version of the SpecimenDefinition. For more information see Technical and Business Versions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="A business identifier assigned to this SpecimenDefinition.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the SpecimenDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the SpecimenDefinition author and is not expected to be globally unique.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the {{title}}. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the SpecimenDefinition.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of theSpecimenDefinition.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A flag to indicate that this SpecimenDefinition is not authored for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="For draft definitions, indicates the date of initial creation. For active definitions, represents the date of activation. For withdrawn definitions, indicates the date of withdrawal.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="Helps establish the authority/credibility of the SpecimenDefinition. May also allow for contact.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the SpecimenDefinition from the consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of specimen definitions.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A jurisdiction in which the SpecimenDefinition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explains why this SpecimeDefinition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="Copyright statement relating to the SpecimenDefinition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the SpecimenDefinition.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the asset content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the asset content was last reviewed. Review happens periodically after that, but doesn't change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the SpecimenDefinition content was or is planned to be effective.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptive topics related to the content of the {{title}}. Topics provide a high-level categorization as well as keywords for the {{title}} that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the {{title}}.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the {{title}}.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the {{title}}.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the {{title}} for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - derivedFromCanonical_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFromCanonical", description="The canonical URL pointing to another FHIR-defined SpecimenDefinition that is adhered to in whole or in part by this definition.") - derivedFromUri_field: List[uriModel] = Field(default_factory=list, alias="derivedFromUri", description="The URL pointing to an externally-defined type of specimen, guideline or other definition that is adhered to in whole or in part by this definition.") - subjectCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="subjectCodeableConcept", description="A code or group definition that describes the intended subject from which this kind of specimen is to be collected.") - subjectReference_field: ReferenceModel = Field(default=None, alias="subjectReference", description="A code or group definition that describes the intended subject from which this kind of specimen is to be collected.") - typeCollected_field: CodeableConceptModel = Field(default=None, alias="typeCollected", description="The kind of material to be collected.") - patientPreparation_field: List[CodeableConceptModel] = Field(default_factory=list, alias="patientPreparation", description="Preparation of the patient for specimen collection.") - timeAspect_field: stringModel = Field(default=None, alias="timeAspect", description="Time aspect of specimen collection (duration or offset).") - collection_field: List[CodeableConceptModel] = Field(default_factory=list, alias="collection", description="The action to be performed for collecting the specimen.") - typeTested_field: List[SpecimenDefinition_TypeTestedModel] = Field(default_factory=list, alias="typeTested", description="Specimen conditioned in a container as expected by the testing laboratory.") - -class SpecimenDefinition_TypeTestedModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - isDerived_field: booleanModel = Field(default=None, alias="isDerived", description="Primary of secondary specimen.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of specimen conditioned for testing expected by lab.") - preference_field: codeModel = Field(default=None, alias="preference", description="The preference for this type of conditioned specimen.") - container_field: SpecimenDefinition_ContainerModel = Field(default=None, alias="container", description="The specimen's container.") - requirement_field: markdownModel = Field(default=None, alias="requirement", description="Requirements for delivery and special handling of this kind of conditioned specimen.") - retentionTime_field: DurationModel = Field(default=None, alias="retentionTime", description="The usual time that a specimen of this kind is retained after the ordered tests are completed, for the purpose of additional testing.") - singleUse_field: booleanModel = Field(default=None, alias="singleUse", description="Specimen can be used by only one test or panel if the value is true.") - rejectionCriterion_field: List[CodeableConceptModel] = Field(default_factory=list, alias="rejectionCriterion", description="Criterion for rejection of the specimen in its container by the laboratory.") - handling_field: List[SpecimenDefinition_HandlingModel] = Field(default_factory=list, alias="handling", description="Set of instructions for preservation/transport of the specimen at a defined temperature interval, prior the testing process.") - testingDestination_field: List[CodeableConceptModel] = Field(default_factory=list, alias="testingDestination", description="Where the specimen will be tested: e.g., lab, sector, device or any combination of these.") - -class SpecimenDefinition_ContainerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - material_field: CodeableConceptModel = Field(default=None, alias="material", description="The type of material of the container.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of container used to contain this kind of specimen.") - cap_field: CodeableConceptModel = Field(default=None, alias="cap", description="Color of container cap.") - description_field: markdownModel = Field(default=None, alias="description", description="The textual description of the kind of container.") - capacity_field: QuantityModel = Field(default=None, alias="capacity", description="The capacity (volume or other measure) of this kind of container.") - minimumVolumeQuantity_field: QuantityModel = Field(default=None, alias="minimumVolumeQuantity", description="The minimum volume to be conditioned in the container.") - additive_field: List[SpecimenDefinition_AdditiveModel] = Field(default_factory=list, alias="additive", description="Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.") - preparation_field: markdownModel = Field(default=None, alias="preparation", description="Special processing that should be applied to the container for this kind of specimen.") - -class SpecimenDefinition_AdditiveModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - additiveCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="additiveCodeableConcept", description="Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.") - additiveReference_field: ReferenceModel = Field(default=None, alias="additiveReference", description="Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA.") - -class SpecimenDefinition_HandlingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - temperatureQualifier_field: CodeableConceptModel = Field(default=None, alias="temperatureQualifier", description="It qualifies the interval of temperature, which characterizes an occurrence of handling. Conditions that are not related to temperature may be handled in the instruction element.") - temperatureRange_field: RangeModel = Field(default=None, alias="temperatureRange", description="The temperature interval for this set of handling instructions.") - maxDuration_field: DurationModel = Field(default=None, alias="maxDuration", description="The maximum time interval of preservation of the specimen with these conditions.") - instruction_field: markdownModel = Field(default=None, alias="instruction", description="Additional textual instructions for the preservation or transport of the specimen. For instance, 'Protect from light exposure'.") - -class StructureDefinitionModel(BaseModel): - resourceType_field: str = "StructureDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this structure definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure definition is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this structure definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the structure definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure definition author and is not expected to be globally unique. There is no expectation that versions can be placed in a lexicographical sequence, so authors are encouraged to populate the StructureDefinition.versionAlgorithm[x] element to enable comparisons. If there is no managed version available, authors can consider using ISO date/time syntax (e.g., '2023-01-01').") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the structure definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the structure definition.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this structure definition. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this structure definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the structure definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the structure definition.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the structure definition from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure definition instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the structure definition is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this structure definition is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure definition. The short copyright declaration (e.g. (c) '2015+ xyz organization' should be sent in the copyrightLabel element.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - keyword_field: List[CodingModel] = Field(default_factory=list, alias="keyword", description="(DEPRECATED) A set of key words or terms from external terminologies that may be used to assist with indexing and searching of templates nby describing the use of this structure definition, or the content it describes.") - fhirVersion_field: codeModel = Field(default=None, alias="fhirVersion", description="The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.6.0. for this version.") - mapping_field: List[StructureDefinition_MappingModel] = Field(default_factory=list, alias="mapping", description="An external specification that the content is mapped to.") - kind_field: codeModel = Field(default=None, alias="kind", description="Defines the kind of structure that this definition is describing.") - abstract_field: booleanModel = Field(default=None, alias="abstract", description="Whether structure this definition describes is abstract or not - that is, whether the structure is not intended to be instantiated. For Resources and Data types, abstract types will never be exchanged between systems.") - context_field: List[StructureDefinition_ContextModel] = Field(default_factory=list, alias="context", description="Identifies the types of resource or data type elements to which the extension can be applied. For more guidance on using the 'context' element, see the [defining extensions page](defining-extensions.html#context).") - contextInvariant_field: List[stringModel] = Field(default_factory=list, alias="contextInvariant", description="A set of rules as FHIRPath Invariants about when the extension can be used (e.g. co-occurrence variants for the extension). All the rules must be true.") - type_field: uriModel = Field(default=None, alias="type", description="The type this structure describes. If the derivation kind is 'specialization' then this is the master definition for a type, and there is always one of these (a data type, an extension, a resource, including abstract ones). Otherwise the structure definition is a constraint on the stated type (and in this case, the type cannot be an abstract type). References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. string is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models, where they are required.") - baseDefinition_field: canonicalModel = Field(default=None, alias="baseDefinition", description="An absolute URI that is the base structure from which this type is derived, either by specialization or constraint.") - derivation_field: codeModel = Field(default=None, alias="derivation", description="How the type relates to the baseDefinition.") - snapshot_field: StructureDefinition_SnapshotModel = Field(default=None, alias="snapshot", description="A snapshot view is expressed in a standalone form that can be used and interpreted without considering the base StructureDefinition.") - differential_field: StructureDefinition_DifferentialModel = Field(default=None, alias="differential", description="A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies.") - -class StructureDefinition_MappingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identity_field: idModel = Field(default=None, alias="identity", description="An Internal id that is used to identify this mapping set when specific mappings are made.") - uri_field: uriModel = Field(default=None, alias="uri", description="An absolute URI that identifies the specification that this mapping is expressed to.") - name_field: stringModel = Field(default=None, alias="name", description="A name for the specification that is being mapped to.") - comment_field: stringModel = Field(default=None, alias="comment", description="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.") - -class StructureDefinition_ContextModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="Defines how to interpret the expression that defines what the context of the extension is.") - expression_field: stringModel = Field(default=None, alias="expression", description="An expression that defines where an extension can be used in resources.") - -class StructureDefinition_SnapshotModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - element_field: List[ElementDefinitionModel] = Field(default_factory=list, alias="element", description="Captures constraints on each element within the resource.") - -class StructureDefinition_DifferentialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - element_field: List[ElementDefinitionModel] = Field(default_factory=list, alias="element", description="Captures constraints on each element within the resource.") - -class StructureMapModel(BaseModel): - resourceType_field: str = "StructureMap" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the structure map.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this structure map. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the structure map from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the structure map is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this structure map is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - structure_field: List[StructureMap_StructureModel] = Field(default_factory=list, alias="structure", description="A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced.") - import_field: List[canonicalModel] = Field(default_factory=list, alias="import", description="Other maps used by this map (canonical URLs).") - const_field: List[StructureMap_ConstModel] = Field(default_factory=list, alias="const", description="Definition of a constant value used in the map rules.") - group_field: List[StructureMap_GroupModel] = Field(default_factory=list, alias="group", description="Organizes the mapping into managable chunks for human review/ease of maintenance.") - -class StructureMap_StructureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: canonicalModel = Field(default=None, alias="url", description="The canonical reference to the structure.") - mode_field: codeModel = Field(default=None, alias="mode", description="How the referenced structure is used in this mapping.") - alias_field: stringModel = Field(default=None, alias="alias", description="The name used for this type in the map.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="Documentation that describes how the structure is used in the mapping.") - -class StructureMap_ConstModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: idModel = Field(default=None, alias="name", description="Other maps used by this map (canonical URLs).") - value_field: stringModel = Field(default=None, alias="value", description="A FHIRPath expression that is the value of this variable.") - -class StructureMap_GroupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: idModel = Field(default=None, alias="name", description="A unique name for the group for the convenience of human readers.") - extends_field: idModel = Field(default=None, alias="extends", description="Another group that this group adds rules to.") - typeMode_field: codeModel = Field(default=None, alias="typeMode", description="If this is the default rule set to apply for the source type or this combination of types.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="Additional supporting documentation that explains the purpose of the group and the types of mappings within it.") - input_field: List[StructureMap_InputModel] = Field(default_factory=list, alias="input", description="A name assigned to an instance of data. The instance must be provided when the mapping is invoked.") - rule_field: List[StructureMap_RuleModel] = Field(default_factory=list, alias="rule", description="Transform Rule from source to target.") - -class StructureMap_InputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: idModel = Field(default=None, alias="name", description="Name for this instance of data.") - type_field: stringModel = Field(default=None, alias="type", description="Type for this instance of data.") - mode_field: codeModel = Field(default=None, alias="mode", description="Mode for this instance of data.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="Documentation for this instance of data.") - -class StructureMap_RuleModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: idModel = Field(default=None, alias="name", description="Name of the rule for internal references.") - source_field: List[StructureMap_SourceModel] = Field(default_factory=list, alias="source", description="Source inputs to the mapping.") - target_field: List[StructureMap_TargetModel] = Field(default_factory=list, alias="target", description="Content to create because of this mapping rule.") - rule_field: List[StructureMap_RuleModel] = Field(default_factory=list, alias="rule", description="Rules contained in this rule.") - dependent_field: List[StructureMap_DependentModel] = Field(default_factory=list, alias="dependent", description="Which other rules to apply in the context of this rule.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="Documentation for this instance of data.") - -class StructureMap_SourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - context_field: idModel = Field(default=None, alias="context", description="Type or variable this rule applies to.") - min_field: integerModel = Field(default=None, alias="min", description="Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.") - max_field: stringModel = Field(default=None, alias="max", description="Specified maximum cardinality for the element - a number or a *. This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).") - type_field: stringModel = Field(default=None, alias="type", description="Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.") - defaultValue_field: stringModel = Field(default=None, alias="defaultValue", description="A value to use if there is no existing value in the source object.") - element_field: stringModel = Field(default=None, alias="element", description="Optional field for this source.") - listMode_field: codeModel = Field(default=None, alias="listMode", description="How to handle the list mode for this element.") - variable_field: idModel = Field(default=None, alias="variable", description="Named context for field, if a field is specified.") - condition_field: stringModel = Field(default=None, alias="condition", description="FHIRPath expression - must be true or the rule does not apply.") - check_field: stringModel = Field(default=None, alias="check", description="FHIRPath expression - must be true or the mapping engine throws an error instead of completing.") - logMessage_field: stringModel = Field(default=None, alias="logMessage", description="A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.") - -class StructureMap_TargetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - context_field: stringModel = Field(default=None, alias="context", description="Variable this rule applies to.") - element_field: stringModel = Field(default=None, alias="element", description="Field to create in the context.") - variable_field: idModel = Field(default=None, alias="variable", description="Named context for field, if desired, and a field is specified.") - listMode_field: List[codeModel] = Field(default_factory=list, alias="listMode", description="If field is a list, how to manage the list.") - listRuleId_field: idModel = Field(default=None, alias="listRuleId", description="Internal rule reference for shared list items.") - transform_field: codeModel = Field(default=None, alias="transform", description="How the data is copied / created.") - parameter_field: List[StructureMap_ParameterModel] = Field(default_factory=list, alias="parameter", description="Parameters to the transform.") - -class StructureMap_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - -class StructureMap_DependentModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: idModel = Field(default=None, alias="name", description="Name of a rule or group to apply.") - parameter_field: List[StructureMap_ParameterModel] = Field(default_factory=list, alias="parameter", description="Parameter to pass to the rule or group.") - -class SubscriptionModel(BaseModel): - resourceType_field: str = "Subscription" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the subscription.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the subscription, which marks the server state for managing the subscription.") - topic_field: canonicalModel = Field(default=None, alias="topic", description="The reference to the subscription topic to be notified about.") - contact_field: List[ContactPointModel] = Field(default_factory=list, alias="contact", description="Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.") - end_field: instantModel = Field(default=None, alias="end", description="The time for the server to turn the subscription off.") - managingEntity_field: ReferenceModel = Field(default=None, alias="managingEntity", description="Entity with authorization to make subsequent revisions to the Subscription and also determines what data the subscription is authorized to disclose.") - reason_field: stringModel = Field(default=None, alias="reason", description="A description of why this subscription is defined.") - filterBy_field: List[Subscription_FilterByModel] = Field(default_factory=list, alias="filterBy", description="The filter properties to be applied to narrow the subscription topic stream. When multiple filters are applied, evaluates to true if all the conditions applicable to that resource are met; otherwise it returns false (i.e., logical AND).") - channelType_field: CodingModel = Field(default=None, alias="channelType", description="The type of channel to send notifications on.") - endpoint_field: urlModel = Field(default=None, alias="endpoint", description="The url that describes the actual end-point to send notifications to.") - parameter_field: List[Subscription_ParameterModel] = Field(default_factory=list, alias="parameter", description="Channel-dependent information to send as part of the notification (e.g., HTTP Headers).") - heartbeatPeriod_field: unsignedIntModel = Field(default=None, alias="heartbeatPeriod", description="If present, a 'heartbeat' notification (keep-alive) is sent via this channel with an interval period equal to this elements integer value in seconds. If not present, a heartbeat notification is not sent.") - timeout_field: unsignedIntModel = Field(default=None, alias="timeout", description="If present, the maximum amount of time a server will allow before failing a notification attempt.") - contentType_field: codeModel = Field(default=None, alias="contentType", description="The MIME type to send the payload in - e.g., `application/fhir+xml` or `application/fhir+json`. Note that:") - content_field: codeModel = Field(default=None, alias="content", description="How much of the resource content to deliver in the notification payload. The choices are an empty payload, only the resource id, or the full resource content.") - maxCount_field: positiveIntModel = Field(default=None, alias="maxCount", description="If present, the maximum number of events that will be included in a notification bundle. Note that this is not a strict limit on the number of entries in a bundle, as dependent resources can be included.") - -class Subscription_FilterByModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - resourceType_field: uriModel = Field(default=None, alias="resourceType", description="A resource listed in the `SubscriptionTopic` this `Subscription` references (`SubscriptionTopic.canFilterBy.resource`). This element can be used to differentiate filters for topics that include more than one resource type.") - filterParameter_field: stringModel = Field(default=None, alias="filterParameter", description="The filter as defined in the `SubscriptionTopic.canFilterBy.filterParameter` element.") - comparator_field: codeModel = Field(default=None, alias="comparator", description="Comparator applied to this filter parameter.") - modifier_field: codeModel = Field(default=None, alias="modifier", description="Modifier applied to this filter parameter.") - value_field: stringModel = Field(default=None, alias="value", description="The literal value or resource path as is legal in search - for example, `Patient/123` or `le1950`.") - -class Subscription_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Parameter name for information passed to the channel for notifications, for example in the case of a REST hook wanting to pass through an authorization header, the name would be Authorization.") - value_field: stringModel = Field(default=None, alias="value", description="Parameter value for information passed to the channel for notifications, for example in the case of a REST hook wanting to pass through an authorization header, the value would be `Bearer 0193...`.") - -class SubscriptionStatusModel(BaseModel): - resourceType_field: str = "SubscriptionStatus" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the subscription, which marks the server state for managing the subscription.") - type_field: codeModel = Field(default=None, alias="type", description="The type of event being conveyed with this notification.") - eventsSinceSubscriptionStart_field: integer64Model = Field(default=None, alias="eventsSinceSubscriptionStart", description="The total number of actual events which have been generated since the Subscription was created (inclusive of this notification) - regardless of how many have been successfully communicated. This number is NOT incremented for handshake and heartbeat notifications.") - notificationEvent_field: List[SubscriptionStatus_NotificationEventModel] = Field(default_factory=list, alias="notificationEvent", description="Detailed information about events relevant to this subscription notification.") - subscription_field: ReferenceModel = Field(default=None, alias="subscription", description="The reference to the Subscription which generated this notification.") - topic_field: canonicalModel = Field(default=None, alias="topic", description="The reference to the SubscriptionTopic for the Subscription which generated this notification.") - error_field: List[CodeableConceptModel] = Field(default_factory=list, alias="error", description="A record of errors that occurred when the server processed a notification.") - -class SubscriptionStatus_NotificationEventModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - eventNumber_field: integer64Model = Field(default=None, alias="eventNumber", description="Either the sequential number of this event in this subscription context or a relative event number for this notification.") - timestamp_field: instantModel = Field(default=None, alias="timestamp", description="The actual time this event occurred on the server.") - focus_field: ReferenceModel = Field(default=None, alias="focus", description="The focus of this event. While this will usually be a reference to the focus resource of the event, it MAY contain a reference to a non-FHIR object.") - additionalContext_field: List[ReferenceModel] = Field(default_factory=list, alias="additionalContext", description="Additional context information for this event. Generally, this will contain references to additional resources included with the event (e.g., the Patient relevant to an Encounter), however it MAY refer to non-FHIR objects.") - -class SubscriptionTopicModel(BaseModel): - resourceType_field: str = "SubscriptionTopic" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this subscription topic when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this subscription topic is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the subscription topic is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this subscription topic by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the subscription topic when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the Topic author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions are orderable.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the subscription topic This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the subscription topic. For example, admission.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the SubscriptionTopic.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A flag to indicate that this TopSubscriptionTopicic is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the subscription topic was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the subscription topic changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="Helps establish the authority/credibility of the SubscriptionTopic. May also allow for contact.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the Topic from the consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of code system definitions.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A jurisdiction in which the Topic is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explains why this Topic is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the SubscriptionTopic and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the SubscriptionTopic.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - derivedFrom_field: List[canonicalModel] = Field(default_factory=list, alias="derivedFrom", description="The canonical URL pointing to another FHIR-defined SubscriptionTopic that is adhered to in whole or in part by this SubscriptionTopic.") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the asset content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the asset content was last reviewed. Review happens periodically after that, but doesn't change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the SubscriptionTopic content was or is planned to be effective.") - resourceTrigger_field: List[SubscriptionTopic_ResourceTriggerModel] = Field(default_factory=list, alias="resourceTrigger", description="A definition of a resource-based event that triggers a notification based on the SubscriptionTopic. The criteria may be just a human readable description and/or a full FHIR search string or FHIRPath expression. Multiple triggers are considered OR joined (e.g., a resource update matching ANY of the definitions will trigger a notification).") - eventTrigger_field: List[SubscriptionTopic_EventTriggerModel] = Field(default_factory=list, alias="eventTrigger", description="Event definition which can be used to trigger the SubscriptionTopic.") - canFilterBy_field: List[SubscriptionTopic_CanFilterByModel] = Field(default_factory=list, alias="canFilterBy", description="List of properties by which Subscriptions on the SubscriptionTopic can be filtered. May be defined Search Parameters (e.g., Encounter.patient) or parameters defined within this SubscriptionTopic context (e.g., hub.event).") - notificationShape_field: List[SubscriptionTopic_NotificationShapeModel] = Field(default_factory=list, alias="notificationShape", description="List of properties to describe the shape (e.g., resources) included in notifications from this Subscription Topic.") - -class SubscriptionTopic_ResourceTriggerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of this resource trigger for the SubscriptionTopic - for example, An Encounter enters the 'in-progress' state.") - resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the type used in this resource trigger. Relative URLs are relative to the StructureDefinition root of the implemented FHIR version (e.g., http://hl7.org/fhir/StructureDefinition). For example, Patient maps to http://hl7.org/fhir/StructureDefinition/Patient. For more information, see ElementDefinition.type.code.") - supportedInteraction_field: List[codeModel] = Field(default_factory=list, alias="supportedInteraction", description="The FHIR RESTful interaction which can be used to trigger a notification for the SubscriptionTopic. Multiple values are considered OR joined (e.g., CREATE or UPDATE). If not present, all supported interactions are assumed.") - queryCriteria_field: SubscriptionTopic_QueryCriteriaModel = Field(default=None, alias="queryCriteria", description="The FHIR query based rules that the server should use to determine when to trigger a notification for this subscription topic.") - fhirPathCriteria_field: stringModel = Field(default=None, alias="fhirPathCriteria", description="The FHIRPath based rules that the server should use to determine when to trigger a notification for this topic.") - -class SubscriptionTopic_QueryCriteriaModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - previous_field: stringModel = Field(default=None, alias="previous", description="The FHIR query based rules are applied to the previous resource state (e.g., state before an update).") - resultForCreate_field: codeModel = Field(default=None, alias="resultForCreate", description="For `create` interactions, should the `previous` criteria count as an automatic pass or an automatic fail. If not present, the testing behavior during `create` interactions is unspecified (server discretion).") - current_field: stringModel = Field(default=None, alias="current", description="The FHIR query based rules are applied to the current resource state (e.g., state after an update).") - resultForDelete_field: codeModel = Field(default=None, alias="resultForDelete", description="For 'delete' interactions, should the 'current' query criteria count as an automatic pass or an automatic fail. If not present, the testing behavior during `delete` interactions is unspecified (server discretion).") - requireBoth_field: booleanModel = Field(default=None, alias="requireBoth", description="If set to `true`, both the `current` and `previous` query criteria must evaluate `true` to trigger a notification for this topic. If set to `false` or not present, a notification for this topic will be triggered if either the `current` or `previous` tests evaluate to `true`.") - -class SubscriptionTopic_EventTriggerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="The human readable description of an event to trigger a notification for the SubscriptionTopic - for example, Patient Admission, as defined in HL7v2 via message ADT^A01. Multiple values are considered OR joined (e.g., matching any single event listed).") - event_field: CodeableConceptModel = Field(default=None, alias="event", description="A well-defined event which can be used to trigger notifications from the SubscriptionTopic.") - resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the focus type used in this event trigger. Relative URLs are relative to the StructureDefinition root of the implemented FHIR version (e.g., http://hl7.org/fhir/StructureDefinition). For example, Patient maps to http://hl7.org/fhir/StructureDefinition/Patient. For more information, see ElementDefinition.type.code.") - -class SubscriptionTopic_CanFilterByModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Description of how this filtering parameter is intended to be used.") - resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the type used in this filter. This is the focus of the topic (or one of them if there are more than one). It will be the same, a generality, or a specificity of SubscriptionTopic.resourceTrigger.resource or SubscriptionTopic.eventTrigger.resource when they are present.") - filterParameter_field: stringModel = Field(default=None, alias="filterParameter", description="Either the canonical URL to a search parameter (like http://hl7.org/fhir/SearchParameter/encounter-patient) or topic-defined parameter (like hub.event) which is a label for the filter.") - filterDefinition_field: uriModel = Field(default=None, alias="filterDefinition", description="Either the canonical URL to a search parameter (like http://hl7.org/fhir/SearchParameter/encounter-patient) or the officially-defined URI for a shared filter concept (like http://example.org/concepts/shared-common-event).") - comparator_field: List[codeModel] = Field(default_factory=list, alias="comparator", description="Comparators allowed for the filter parameter.") - modifier_field: List[codeModel] = Field(default_factory=list, alias="modifier", description="Modifiers allowed for the filter parameter.") - -class SubscriptionTopic_NotificationShapeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - resource_field: uriModel = Field(default=None, alias="resource", description="URL of the Resource that is the type used in this shape. This is the 'focus' resource of the topic (or one of them if there are more than one) and the root resource for this shape definition. It will be the same, a generality, or a specificity of SubscriptionTopic.resourceTrigger.resource or SubscriptionTopic.eventTrigger.resource when they are present.") - include_field: List[stringModel] = Field(default_factory=list, alias="include", description="Search-style _include directives, rooted in the resource for this shape. Servers SHOULD include resources listed here, if they exist and the user is authorized to receive them. Clients SHOULD be prepared to receive these additional resources, but SHALL function properly without them.") - revInclude_field: List[stringModel] = Field(default_factory=list, alias="revInclude", description="Search-style _revinclude directives, rooted in the resource for this shape. Servers SHOULD include resources listed here, if they exist and the user is authorized to receive them. Clients SHOULD be prepared to receive these additional resources, but SHALL function properly without them.") - -class SubstanceModel(BaseModel): - resourceType_field: str = "Substance" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Unique identifier for the substance. For an instance, an identifier associated with the package/container (usually a label affixed directly).") - instance_field: booleanModel = Field(default=None, alias="instance", description="A boolean to indicate if this an instance of a substance or a kind of one (a definition).") - status_field: codeModel = Field(default=None, alias="status", description="A code to indicate if the substance is actively used.") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="A code that classifies the general type of substance. This is used for searching, sorting and display purposes.") - code_field: CodeableReferenceModel = Field(default=None, alias="code", description="A code (or set of codes) that identify this substance.") - description_field: markdownModel = Field(default=None, alias="description", description="A description of the substance - its appearance, handling requirements, and other usage notes.") - expiry_field: dateTimeModel = Field(default=None, alias="expiry", description="When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of the substance.") - ingredient_field: List[Substance_IngredientModel] = Field(default_factory=list, alias="ingredient", description="A substance can be composed of other substances.") - -class Substance_IngredientModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - quantity_field: RatioModel = Field(default=None, alias="quantity", description="The amount of the ingredient in the substance - a concentration ratio.") - substanceCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="substanceCodeableConcept", description="Another substance that is a component of this substance.") - substanceReference_field: ReferenceModel = Field(default=None, alias="substanceReference", description="Another substance that is a component of this substance.") - -class SubstanceDefinitionModel(BaseModel): - resourceType_field: str = "SubstanceDefinition" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier by which this substance is known.") - version_field: stringModel = Field(default=None, alias="version", description="A business level version identifier of the substance.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="Status of substance within the catalogue e.g. active, retired.") - classification_field: List[CodeableConceptModel] = Field(default_factory=list, alias="classification", description="A high level categorization, e.g. polymer or nucleic acid, or food, chemical, biological, or a lower level such as the general types of polymer (linear or branch chain) or type of impurity (process related or contaminant).") - domain_field: CodeableConceptModel = Field(default=None, alias="domain", description="If the substance applies to human or veterinary use.") - grade_field: List[CodeableConceptModel] = Field(default_factory=list, alias="grade", description="The quality standard, established benchmark, to which substance complies (e.g. USP/NF, Ph. Eur, JP, BP, Company Standard).") - description_field: markdownModel = Field(default=None, alias="description", description="Textual description of the substance.") - informationSource_field: List[ReferenceModel] = Field(default_factory=list, alias="informationSource", description="Supporting literature.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Textual comment about the substance's catalogue or registry record.") - manufacturer_field: List[ReferenceModel] = Field(default_factory=list, alias="manufacturer", description="The entity that creates, makes, produces or fabricates the substance. This is a set of potential manufacturers but is not necessarily comprehensive.") - supplier_field: List[ReferenceModel] = Field(default_factory=list, alias="supplier", description="An entity that is the source for the substance. It may be different from the manufacturer. Supplier is synonymous to a distributor.") - moiety_field: List[SubstanceDefinition_MoietyModel] = Field(default_factory=list, alias="moiety", description="Moiety, for structural modifications.") - characterization_field: List[SubstanceDefinition_CharacterizationModel] = Field(default_factory=list, alias="characterization", description="General specifications for this substance.") - property_field: List[SubstanceDefinition_PropertyModel] = Field(default_factory=list, alias="property", description="General specifications for this substance.") - referenceInformation_field: ReferenceModel = Field(default=None, alias="referenceInformation", description="General information detailing this substance.") - molecularWeight_field: List[SubstanceDefinition_MolecularWeightModel] = Field(default_factory=list, alias="molecularWeight", description="The average mass of a molecule of a compound compared to 1/12 the mass of carbon 12 and calculated as the sum of the atomic weights of the constituent atoms.") - structure_field: SubstanceDefinition_StructureModel = Field(default=None, alias="structure", description="Structural information.") - code_field: List[SubstanceDefinition_CodeModel] = Field(default_factory=list, alias="code", description="Codes associated with the substance.") - name_field: List[SubstanceDefinition_NameModel] = Field(default_factory=list, alias="name", description="Names applicable to this substance.") - relationship_field: List[SubstanceDefinition_RelationshipModel] = Field(default_factory=list, alias="relationship", description="A link between this substance and another, with details of the relationship.") - nucleicAcid_field: ReferenceModel = Field(default=None, alias="nucleicAcid", description="Data items specific to nucleic acids.") - polymer_field: ReferenceModel = Field(default=None, alias="polymer", description="Data items specific to polymers.") - protein_field: ReferenceModel = Field(default=None, alias="protein", description="Data items specific to proteins.") - sourceMaterial_field: SubstanceDefinition_SourceMaterialModel = Field(default=None, alias="sourceMaterial", description="Material or taxonomic/anatomical source for the substance.") - -class SubstanceDefinition_MoietyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - role_field: CodeableConceptModel = Field(default=None, alias="role", description="Role that the moiety is playing.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifier by which this moiety substance is known.") - name_field: stringModel = Field(default=None, alias="name", description="Textual name for this moiety substance.") - stereochemistry_field: CodeableConceptModel = Field(default=None, alias="stereochemistry", description="Stereochemistry type.") - opticalActivity_field: CodeableConceptModel = Field(default=None, alias="opticalActivity", description="Optical activity type.") - molecularFormula_field: stringModel = Field(default=None, alias="molecularFormula", description="Molecular formula for this moiety of this substance, typically using the Hill system.") - amountQuantity_field: QuantityModel = Field(default=None, alias="amountQuantity", description="Quantitative value for this moiety.") - measurementType_field: CodeableConceptModel = Field(default=None, alias="measurementType", description="The measurement type of the quantitative value. In capturing the actual relative amounts of substances or molecular fragments it may be necessary to indicate whether the amount refers to, for example, a mole ratio or weight ratio.") - -class SubstanceDefinition_CharacterizationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - technique_field: CodeableConceptModel = Field(default=None, alias="technique", description="The method used to elucidate the characterization of the drug substance. Example: HPLC.") - form_field: CodeableConceptModel = Field(default=None, alias="form", description="Describes the nature of the chemical entity and explains, for instance, whether this is a base or a salt form.") - description_field: markdownModel = Field(default=None, alias="description", description="The description or justification in support of the interpretation of the data file.") - file_field: List[AttachmentModel] = Field(default_factory=list, alias="file", description="The data produced by the analytical instrument or a pictorial representation of that data. Examples: a JCAMP, JDX, or ADX file, or a chromatogram or spectrum analysis.") - -class SubstanceDefinition_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code expressing the type of property.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="A value for the property.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="A value for the property.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="A value for the property.") - -class SubstanceDefinition_MolecularWeightModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - method_field: CodeableConceptModel = Field(default=None, alias="method", description="The method by which the molecular weight was determined.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Type of molecular weight such as exact, average (also known as. number average), weight average.") - amount_field: QuantityModel = Field(default=None, alias="amount", description="Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field.") - -class SubstanceDefinition_StructureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - stereochemistry_field: CodeableConceptModel = Field(default=None, alias="stereochemistry", description="Stereochemistry type.") - opticalActivity_field: CodeableConceptModel = Field(default=None, alias="opticalActivity", description="Optical activity type.") - molecularFormula_field: stringModel = Field(default=None, alias="molecularFormula", description="An expression which states the number and type of atoms present in a molecule of a substance.") - molecularFormulaByMoiety_field: stringModel = Field(default=None, alias="molecularFormulaByMoiety", description="Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot.") - molecularWeight_field: SubstanceDefinition_MolecularWeightModel = Field(default=None, alias="molecularWeight", description="The molecular weight or weight range (for proteins, polymers or nucleic acids).") - technique_field: List[CodeableConceptModel] = Field(default_factory=list, alias="technique", description="The method used to elucidate the structure of the drug substance. Examples: X-ray, NMR, Peptide mapping, Ligand binding assay.") - sourceDocument_field: List[ReferenceModel] = Field(default_factory=list, alias="sourceDocument", description="The source of information about the structure.") - representation_field: List[SubstanceDefinition_RepresentationModel] = Field(default_factory=list, alias="representation", description="A depiction of the structure of the substance.") - -class SubstanceDefinition_RepresentationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The kind of structural representation (e.g. full, partial).") - representation_field: stringModel = Field(default=None, alias="representation", description="The structural representation as a text string in a standard format.") - format_field: CodeableConceptModel = Field(default=None, alias="format", description="The format of the representation e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF. The logical content type rather than the physical file format of a document.") - document_field: ReferenceModel = Field(default=None, alias="document", description="An attached file with the structural representation e.g. a molecular structure graphic of the substance, a JCAMP or AnIML file.") - -class SubstanceDefinition_CodeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The specific code.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="Status of the code assignment, for example 'provisional', 'approved'.") - statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="The date at which the code status was changed as part of the terminology maintenance.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Any comment can be provided in this field, if necessary.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Supporting literature.") - -class SubstanceDefinition_NameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The actual name.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Name type, for example 'systematic', 'scientific, 'brand'.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status of the name, for example 'current', 'proposed'.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="If this is the preferred name for this substance.") - language_field: List[CodeableConceptModel] = Field(default_factory=list, alias="language", description="Human language that the name is written in.") - domain_field: List[CodeableConceptModel] = Field(default_factory=list, alias="domain", description="The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="The jurisdiction where this name applies.") - synonym_field: List[SubstanceDefinition_NameModel] = Field(default_factory=list, alias="synonym", description="A synonym of this particular name, by which the substance is also known.") - translation_field: List[SubstanceDefinition_NameModel] = Field(default_factory=list, alias="translation", description="A translation for this name into another human language.") - official_field: List[SubstanceDefinition_OfficialModel] = Field(default_factory=list, alias="official", description="Details of the official nature of this name.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Supporting literature.") - -class SubstanceDefinition_OfficialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - authority_field: CodeableConceptModel = Field(default=None, alias="authority", description="Which authority uses this official name.") - status_field: CodeableConceptModel = Field(default=None, alias="status", description="The status of the official name, for example 'draft', 'active', 'retired'.") - date_field: dateTimeModel = Field(default=None, alias="date", description="Date of the official name change.") - -class SubstanceDefinition_RelationshipModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - substanceDefinitionReference_field: ReferenceModel = Field(default=None, alias="substanceDefinitionReference", description="A pointer to another substance, as a resource or just a representational code.") - substanceDefinitionCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="substanceDefinitionCodeableConcept", description="A pointer to another substance, as a resource or just a representational code.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="For example salt to parent, active moiety, starting material, polymorph, impurity of.") - isDefining_field: booleanModel = Field(default=None, alias="isDefining", description="For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships.") - amountQuantity_field: QuantityModel = Field(default=None, alias="amountQuantity", description="A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other.") - amountRatio_field: RatioModel = Field(default=None, alias="amountRatio", description="A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other.") - ratioHighLimitAmount_field: RatioModel = Field(default=None, alias="ratioHighLimitAmount", description="For use when the numeric has an uncertain range.") - comparator_field: CodeableConceptModel = Field(default=None, alias="comparator", description="An operator for the amount, for example average, approximately, less than.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Supporting literature.") - -class SubstanceDefinition_SourceMaterialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A classification that provides the origin of the raw material. Example: cat hair would be an Animal source type.") - genus_field: CodeableConceptModel = Field(default=None, alias="genus", description="The genus of an organism, typically referring to the Latin epithet of the genus element of the plant/animal scientific name.") - species_field: CodeableConceptModel = Field(default=None, alias="species", description="The species of an organism, typically referring to the Latin epithet of the species of the plant/animal.") - part_field: CodeableConceptModel = Field(default=None, alias="part", description="An anatomical origin of the source material within an organism.") - countryOfOrigin_field: List[CodeableConceptModel] = Field(default_factory=list, alias="countryOfOrigin", description="The country or countries where the material is harvested.") - -class SubstanceNucleicAcidModel(BaseModel): - resourceType_field: str = "SubstanceNucleicAcid" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequenceType_field: CodeableConceptModel = Field(default=None, alias="sequenceType", description="The type of the sequence shall be specified based on a controlled vocabulary.") - numberOfSubunits_field: integerModel = Field(default=None, alias="numberOfSubunits", description="The number of linear sequences of nucleotides linked through phosphodiester bonds shall be described. Subunits would be strands of nucleic acids that are tightly associated typically through Watson-Crick base pairing. NOTE: If not specified in the reference source, the assumption is that there is 1 subunit.") - areaOfHybridisation_field: stringModel = Field(default=None, alias="areaOfHybridisation", description="The area of hybridisation shall be described if applicable for double stranded RNA or DNA. The number associated with the subunit followed by the number associated to the residue shall be specified in increasing order. The underscore “” shall be used as separator as follows: “Subunitnumber Residue”.") - oligoNucleotideType_field: CodeableConceptModel = Field(default=None, alias="oligoNucleotideType", description="(TBC).") - subunit_field: List[SubstanceNucleicAcid_SubunitModel] = Field(default_factory=list, alias="subunit", description="Subunits are listed in order of decreasing length; sequences of the same length will be ordered by molecular weight; subunits that have identical sequences will be repeated multiple times.") - -class SubstanceNucleicAcid_SubunitModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - subunit_field: integerModel = Field(default=None, alias="subunit", description="Index of linear sequences of nucleic acids in order of decreasing length. Sequences of the same length will be ordered by molecular weight. Subunits that have identical sequences will be repeated and have sequential subscripts.") - sequence_field: stringModel = Field(default=None, alias="sequence", description="Actual nucleotide sequence notation from 5' to 3' end using standard single letter codes. In addition to the base sequence, sugar and type of phosphate or non-phosphate linkage should also be captured.") - length_field: integerModel = Field(default=None, alias="length", description="The length of the sequence shall be captured.") - sequenceAttachment_field: AttachmentModel = Field(default=None, alias="sequenceAttachment", description="(TBC).") - fivePrime_field: CodeableConceptModel = Field(default=None, alias="fivePrime", description="The nucleotide present at the 5’ terminal shall be specified based on a controlled vocabulary. Since the sequence is represented from the 5' to the 3' end, the 5’ prime nucleotide is the letter at the first position in the sequence. A separate representation would be redundant.") - threePrime_field: CodeableConceptModel = Field(default=None, alias="threePrime", description="The nucleotide present at the 3’ terminal shall be specified based on a controlled vocabulary. Since the sequence is represented from the 5' to the 3' end, the 5’ prime nucleotide is the letter at the last position in the sequence. A separate representation would be redundant.") - linkage_field: List[SubstanceNucleicAcid_LinkageModel] = Field(default_factory=list, alias="linkage", description="The linkages between sugar residues will also be captured.") - sugar_field: List[SubstanceNucleicAcid_SugarModel] = Field(default_factory=list, alias="sugar", description="5.3.6.8.1 Sugar ID (Mandatory).") - -class SubstanceNucleicAcid_LinkageModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - connectivity_field: stringModel = Field(default=None, alias="connectivity", description="The entity that links the sugar residues together should also be captured for nearly all naturally occurring nucleic acid the linkage is a phosphate group. For many synthetic oligonucleotides phosphorothioate linkages are often seen. Linkage connectivity is assumed to be 3’-5’. If the linkage is either 3’-3’ or 5’-5’ this should be specified.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Each linkage will be registered as a fragment and have an ID.") - name_field: stringModel = Field(default=None, alias="name", description="Each linkage will be registered as a fragment and have at least one name. A single name shall be assigned to each linkage.") - residueSite_field: stringModel = Field(default=None, alias="residueSite", description="Residues shall be captured as described in 5.3.6.8.3.") - -class SubstanceNucleicAcid_SugarModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="The Substance ID of the sugar or sugar-like component that make up the nucleotide.") - name_field: stringModel = Field(default=None, alias="name", description="The name of the sugar or sugar-like component that make up the nucleotide.") - residueSite_field: stringModel = Field(default=None, alias="residueSite", description="The residues that contain a given sugar will be captured. The order of given residues will be captured in the 5‘-3‘direction consistent with the base sequences listed above.") - -class SubstancePolymerModel(BaseModel): - resourceType_field: str = "SubstancePolymer" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="A business idenfier for this polymer, but typically this is handled by a SubstanceDefinition identifier.") - class_field: CodeableConceptModel = Field(default=None, alias="class", description="Overall type of the polymer.") - geometry_field: CodeableConceptModel = Field(default=None, alias="geometry", description="Polymer geometry, e.g. linear, branched, cross-linked, network or dendritic.") - copolymerConnectivity_field: List[CodeableConceptModel] = Field(default_factory=list, alias="copolymerConnectivity", description="Descrtibes the copolymer sequence type (polymer connectivity).") - modification_field: stringModel = Field(default=None, alias="modification", description="Todo - this is intended to connect to a repeating full modification structure, also used by Protein and Nucleic Acid . String is just a placeholder.") - monomerSet_field: List[SubstancePolymer_MonomerSetModel] = Field(default_factory=list, alias="monomerSet", description="Todo.") - repeat_field: List[SubstancePolymer_RepeatModel] = Field(default_factory=list, alias="repeat", description="Specifies and quantifies the repeated units and their configuration.") - -class SubstancePolymer_MonomerSetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - ratioType_field: CodeableConceptModel = Field(default=None, alias="ratioType", description="Captures the type of ratio to the entire polymer, e.g. Monomer/Polymer ratio, SRU/Polymer Ratio.") - startingMaterial_field: List[SubstancePolymer_StartingMaterialModel] = Field(default_factory=list, alias="startingMaterial", description="The starting materials - monomer(s) used in the synthesis of the polymer.") - -class SubstancePolymer_StartingMaterialModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="The type of substance for this starting material.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Substance high level category, e.g. chemical substance.") - isDefining_field: booleanModel = Field(default=None, alias="isDefining", description="Used to specify whether the attribute described is a defining element for the unique identification of the polymer.") - amount_field: QuantityModel = Field(default=None, alias="amount", description="A percentage.") - -class SubstancePolymer_RepeatModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - averageMolecularFormula_field: stringModel = Field(default=None, alias="averageMolecularFormula", description="A representation of an (average) molecular formula from a polymer.") - repeatUnitAmountType_field: CodeableConceptModel = Field(default=None, alias="repeatUnitAmountType", description="How the quantitative amount of Structural Repeat Units is captured (e.g. Exact, Numeric, Average).") - repeatUnit_field: List[SubstancePolymer_RepeatUnitModel] = Field(default_factory=list, alias="repeatUnit", description="An SRU - Structural Repeat Unit.") - -class SubstancePolymer_RepeatUnitModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - unit_field: stringModel = Field(default=None, alias="unit", description="Structural repeat units are essential elements for defining polymers.") - orientation_field: CodeableConceptModel = Field(default=None, alias="orientation", description="The orientation of the polymerisation, e.g. head-tail, head-head, random.") - amount_field: integerModel = Field(default=None, alias="amount", description="Number of repeats of this unit.") - degreeOfPolymerisation_field: List[SubstancePolymer_DegreeOfPolymerisationModel] = Field(default_factory=list, alias="degreeOfPolymerisation", description="Applies to homopolymer and block co-polymers where the degree of polymerisation within a block can be described.") - structuralRepresentation_field: List[SubstancePolymer_StructuralRepresentationModel] = Field(default_factory=list, alias="structuralRepresentation", description="A graphical structure for this SRU.") - -class SubstancePolymer_DegreeOfPolymerisationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of the degree of polymerisation shall be described, e.g. SRU/Polymer Ratio.") - average_field: integerModel = Field(default=None, alias="average", description="An average amount of polymerisation.") - low_field: integerModel = Field(default=None, alias="low", description="A low expected limit of the amount.") - high_field: integerModel = Field(default=None, alias="high", description="A high expected limit of the amount.") - -class SubstancePolymer_StructuralRepresentationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The type of structure (e.g. Full, Partial, Representative).") - representation_field: stringModel = Field(default=None, alias="representation", description="The structural representation as text string in a standard format e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF.") - format_field: CodeableConceptModel = Field(default=None, alias="format", description="The format of the representation e.g. InChI, SMILES, MOLFILE, CDX, SDF, PDB, mmCIF.") - attachment_field: AttachmentModel = Field(default=None, alias="attachment", description="An attached file with the structural representation.") - -class SubstanceProteinModel(BaseModel): - resourceType_field: str = "SubstanceProtein" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequenceType_field: CodeableConceptModel = Field(default=None, alias="sequenceType", description="The SubstanceProtein descriptive elements will only be used when a complete or partial amino acid sequence is available or derivable from a nucleic acid sequence.") - numberOfSubunits_field: integerModel = Field(default=None, alias="numberOfSubunits", description="Number of linear sequences of amino acids linked through peptide bonds. The number of subunits constituting the SubstanceProtein shall be described. It is possible that the number of subunits can be variable.") - disulfideLinkage_field: List[stringModel] = Field(default_factory=list, alias="disulfideLinkage", description="The disulphide bond between two cysteine residues either on the same subunit or on two different subunits shall be described. The position of the disulfide bonds in the SubstanceProtein shall be listed in increasing order of subunit number and position within subunit followed by the abbreviation of the amino acids involved. The disulfide linkage positions shall actually contain the amino acid Cysteine at the respective positions.") - subunit_field: List[SubstanceProtein_SubunitModel] = Field(default_factory=list, alias="subunit", description="This subclause refers to the description of each subunit constituting the SubstanceProtein. A subunit is a linear sequence of amino acids linked through peptide bonds. The Subunit information shall be provided when the finished SubstanceProtein is a complex of multiple sequences; subunits are not used to delineate domains within a single sequence. Subunits are listed in order of decreasing length; sequences of the same length will be ordered by decreasing molecular weight; subunits that have identical sequences will be repeated multiple times.") - -class SubstanceProtein_SubunitModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - subunit_field: integerModel = Field(default=None, alias="subunit", description="Index of primary sequences of amino acids linked through peptide bonds in order of decreasing length. Sequences of the same length will be ordered by molecular weight. Subunits that have identical sequences will be repeated and have sequential subscripts.") - sequence_field: stringModel = Field(default=None, alias="sequence", description="The sequence information shall be provided enumerating the amino acids from N- to C-terminal end using standard single-letter amino acid codes. Uppercase shall be used for L-amino acids and lowercase for D-amino acids. Transcribed SubstanceProteins will always be described using the translated sequence; for synthetic peptide containing amino acids that are not represented with a single letter code an X should be used within the sequence. The modified amino acids will be distinguished by their position in the sequence.") - length_field: integerModel = Field(default=None, alias="length", description="Length of linear sequences of amino acids contained in the subunit.") - sequenceAttachment_field: AttachmentModel = Field(default=None, alias="sequenceAttachment", description="The sequence information shall be provided enumerating the amino acids from N- to C-terminal end using standard single-letter amino acid codes. Uppercase shall be used for L-amino acids and lowercase for D-amino acids. Transcribed SubstanceProteins will always be described using the translated sequence; for synthetic peptide containing amino acids that are not represented with a single letter code an X should be used within the sequence. The modified amino acids will be distinguished by their position in the sequence.") - nTerminalModificationId_field: IdentifierModel = Field(default=None, alias="nTerminalModificationId", description="Unique identifier for molecular fragment modification based on the ISO 11238 Substance ID.") - nTerminalModification_field: stringModel = Field(default=None, alias="nTerminalModification", description="The name of the fragment modified at the N-terminal of the SubstanceProtein shall be specified.") - cTerminalModificationId_field: IdentifierModel = Field(default=None, alias="cTerminalModificationId", description="Unique identifier for molecular fragment modification based on the ISO 11238 Substance ID.") - cTerminalModification_field: stringModel = Field(default=None, alias="cTerminalModification", description="The modification at the C-terminal shall be specified.") - -class SubstanceReferenceInformationModel(BaseModel): - resourceType_field: str = "SubstanceReferenceInformation" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - comment_field: stringModel = Field(default=None, alias="comment", description="Todo.") - gene_field: List[SubstanceReferenceInformation_GeneModel] = Field(default_factory=list, alias="gene", description="Todo.") - geneElement_field: List[SubstanceReferenceInformation_GeneElementModel] = Field(default_factory=list, alias="geneElement", description="Todo.") - target_field: List[SubstanceReferenceInformation_TargetModel] = Field(default_factory=list, alias="target", description="Todo.") - -class SubstanceReferenceInformation_GeneModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - geneSequenceOrigin_field: CodeableConceptModel = Field(default=None, alias="geneSequenceOrigin", description="Todo.") - gene_field: CodeableConceptModel = Field(default=None, alias="gene", description="Todo.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Todo.") - -class SubstanceReferenceInformation_GeneElementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Todo.") - element_field: IdentifierModel = Field(default=None, alias="element", description="Todo.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Todo.") - -class SubstanceReferenceInformation_TargetModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - target_field: IdentifierModel = Field(default=None, alias="target", description="Todo.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Todo.") - interaction_field: CodeableConceptModel = Field(default=None, alias="interaction", description="Todo.") - organism_field: CodeableConceptModel = Field(default=None, alias="organism", description="Todo.") - organismType_field: CodeableConceptModel = Field(default=None, alias="organismType", description="Todo.") - amountQuantity_field: QuantityModel = Field(default=None, alias="amountQuantity", description="Todo.") - amountRange_field: RangeModel = Field(default=None, alias="amountRange", description="Todo.") - amountType_field: CodeableConceptModel = Field(default=None, alias="amountType", description="Todo.") - source_field: List[ReferenceModel] = Field(default_factory=list, alias="source", description="Todo.") - -class SubstanceSourceMaterialModel(BaseModel): - resourceType_field: str = "SubstanceSourceMaterial" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sourceMaterialClass_field: CodeableConceptModel = Field(default=None, alias="sourceMaterialClass", description="General high level classification of the source material specific to the origin of the material.") - sourceMaterialType_field: CodeableConceptModel = Field(default=None, alias="sourceMaterialType", description="The type of the source material shall be specified based on a controlled vocabulary. For vaccines, this subclause refers to the class of infectious agent.") - sourceMaterialState_field: CodeableConceptModel = Field(default=None, alias="sourceMaterialState", description="The state of the source material when extracted.") - organismId_field: IdentifierModel = Field(default=None, alias="organismId", description="The unique identifier associated with the source material parent organism shall be specified.") - organismName_field: stringModel = Field(default=None, alias="organismName", description="The organism accepted Scientific name shall be provided based on the organism taxonomy.") - parentSubstanceId_field: List[IdentifierModel] = Field(default_factory=list, alias="parentSubstanceId", description="The parent of the herbal drug Ginkgo biloba, Leaf is the substance ID of the substance (fresh) of Ginkgo biloba L. or Ginkgo biloba L. (Whole plant).") - parentSubstanceName_field: List[stringModel] = Field(default_factory=list, alias="parentSubstanceName", description="The parent substance of the Herbal Drug, or Herbal preparation.") - countryOfOrigin_field: List[CodeableConceptModel] = Field(default_factory=list, alias="countryOfOrigin", description="The country where the plant material is harvested or the countries where the plasma is sourced from as laid down in accordance with the Plasma Master File. For “Plasma-derived substances” the attribute country of origin provides information about the countries used for the manufacturing of the Cryopoor plama or Crioprecipitate.") - geographicalLocation_field: List[stringModel] = Field(default_factory=list, alias="geographicalLocation", description="The place/region where the plant is harvested or the places/regions where the animal source material has its habitat.") - developmentStage_field: CodeableConceptModel = Field(default=None, alias="developmentStage", description="Stage of life for animals, plants, insects and microorganisms. This information shall be provided only when the substance is significantly different in these stages (e.g. foetal bovine serum).") - fractionDescription_field: List[SubstanceSourceMaterial_FractionDescriptionModel] = Field(default_factory=list, alias="fractionDescription", description="Many complex materials are fractions of parts of plants, animals, or minerals. Fraction elements are often necessary to define both Substances and Specified Group 1 Substances. For substances derived from Plants, fraction information will be captured at the Substance information level ( . Oils, Juices and Exudates). Additional information for Extracts, such as extraction solvent composition, will be captured at the Specified Substance Group 1 information level. For plasma-derived products fraction information will be captured at the Substance and the Specified Substance Group 1 levels.") - organism_field: SubstanceSourceMaterial_OrganismModel = Field(default=None, alias="organism", description="This subclause describes the organism which the substance is derived from. For vaccines, the parent organism shall be specified based on these subclause elements. As an example, full taxonomy will be described for the Substance Name: ., Leaf.") - partDescription_field: List[SubstanceSourceMaterial_PartDescriptionModel] = Field(default_factory=list, alias="partDescription", description="To do.") - -class SubstanceSourceMaterial_FractionDescriptionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - fraction_field: stringModel = Field(default=None, alias="fraction", description="This element is capturing information about the fraction of a plant part, or human plasma for fractionation.") - materialType_field: CodeableConceptModel = Field(default=None, alias="materialType", description="The specific type of the material constituting the component. For Herbal preparations the particulars of the extracts (liquid/dry) is described in Specified Substance Group 1.") - -class SubstanceSourceMaterial_OrganismModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - family_field: CodeableConceptModel = Field(default=None, alias="family", description="The family of an organism shall be specified.") - genus_field: CodeableConceptModel = Field(default=None, alias="genus", description="The genus of an organism shall be specified; refers to the Latin epithet of the genus element of the plant/animal scientific name; it is present in names for genera, species and infraspecies.") - species_field: CodeableConceptModel = Field(default=None, alias="species", description="The species of an organism shall be specified; refers to the Latin epithet of the species of the plant/animal; it is present in names for species and infraspecies.") - intraspecificType_field: CodeableConceptModel = Field(default=None, alias="intraspecificType", description="The Intraspecific type of an organism shall be specified.") - intraspecificDescription_field: stringModel = Field(default=None, alias="intraspecificDescription", description="The intraspecific description of an organism shall be specified based on a controlled vocabulary. For Influenza Vaccine, the intraspecific description shall contain the syntax of the antigen in line with the WHO convention.") - author_field: List[SubstanceSourceMaterial_AuthorModel] = Field(default_factory=list, alias="author", description="4.9.13.6.1 Author type (Conditional).") - hybrid_field: SubstanceSourceMaterial_HybridModel = Field(default=None, alias="hybrid", description="4.9.13.8.1 Hybrid species maternal organism ID (Optional).") - organismGeneral_field: SubstanceSourceMaterial_OrganismGeneralModel = Field(default=None, alias="organismGeneral", description="4.9.13.7.1 Kingdom (Conditional).") - -class SubstanceSourceMaterial_AuthorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - authorType_field: CodeableConceptModel = Field(default=None, alias="authorType", description="The type of author of an organism species shall be specified. The parenthetical author of an organism species refers to the first author who published the plant/animal name (of any rank). The primary author of an organism species refers to the first author(s), who validly published the plant/animal name.") - authorDescription_field: stringModel = Field(default=None, alias="authorDescription", description="The author of an organism species shall be specified. The author year of an organism shall also be specified when applicable; refers to the year in which the first author(s) published the infraspecific plant/animal name (of any rank).") - -class SubstanceSourceMaterial_HybridModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - maternalOrganismId_field: stringModel = Field(default=None, alias="maternalOrganismId", description="The identifier of the maternal species constituting the hybrid organism shall be specified based on a controlled vocabulary. For plants, the parents aren’t always known, and it is unlikely that it will be known which is maternal and which is paternal.") - maternalOrganismName_field: stringModel = Field(default=None, alias="maternalOrganismName", description="The name of the maternal species constituting the hybrid organism shall be specified. For plants, the parents aren’t always known, and it is unlikely that it will be known which is maternal and which is paternal.") - paternalOrganismId_field: stringModel = Field(default=None, alias="paternalOrganismId", description="The identifier of the paternal species constituting the hybrid organism shall be specified based on a controlled vocabulary.") - paternalOrganismName_field: stringModel = Field(default=None, alias="paternalOrganismName", description="The name of the paternal species constituting the hybrid organism shall be specified.") - hybridType_field: CodeableConceptModel = Field(default=None, alias="hybridType", description="The hybrid type of an organism shall be specified.") - -class SubstanceSourceMaterial_OrganismGeneralModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - kingdom_field: CodeableConceptModel = Field(default=None, alias="kingdom", description="The kingdom of an organism shall be specified.") - phylum_field: CodeableConceptModel = Field(default=None, alias="phylum", description="The phylum of an organism shall be specified.") - class_field: CodeableConceptModel = Field(default=None, alias="class", description="The class of an organism shall be specified.") - order_field: CodeableConceptModel = Field(default=None, alias="order", description="The order of an organism shall be specified,.") - -class SubstanceSourceMaterial_PartDescriptionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - part_field: CodeableConceptModel = Field(default=None, alias="part", description="Entity of anatomical origin of source material within an organism.") - partLocation_field: CodeableConceptModel = Field(default=None, alias="partLocation", description="The detailed anatomic location when the part can be extracted from different anatomical locations of the organism. Multiple alternative locations may apply.") - -class SupplyDeliveryModel(BaseModel): - resourceType_field: str = "SupplyDelivery" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the supply delivery event that is used to identify it across multiple disparate systems.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="A plan, proposal or order that is fulfilled in whole or in part by this event.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the dispense event.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="A link to a resource representing the person whom the delivered item is for.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="Indicates the type of supply being provided. Examples include: Medication, Device, Biologically Derived Product.") - suppliedItem_field: List[SupplyDelivery_SuppliedItemModel] = Field(default_factory=list, alias="suppliedItem", description="The item that is being delivered or has been supplied.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="The date or time(s) the activity occurred.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="The date or time(s) the activity occurred.") - supplier_field: ReferenceModel = Field(default=None, alias="supplier", description="The individual or organization responsible for supplying the delivery.") - destination_field: ReferenceModel = Field(default=None, alias="destination", description="Identification of the facility/location where the delivery was shipped to.") - receiver_field: List[ReferenceModel] = Field(default_factory=list, alias="receiver", description="Identifies the individual or organization that received the delivery.") - -class SupplyDelivery_SuppliedItemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount of the item that has been supplied. Unit of measure may be included.") - itemCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="itemCodeableConcept", description="Identifies the medication, substance, device or biologically derived product being supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.") - itemReference_field: ReferenceModel = Field(default=None, alias="itemReference", description="Identifies the medication, substance, device or biologically derived product being supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.") - -class SupplyRequestModel(BaseModel): - resourceType_field: str = "SupplyRequest" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.") - status_field: codeModel = Field(default=None, alias="status", description="Status of the supply request.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="Plan/proposal/order fulfilled by this request.") - category_field: CodeableConceptModel = Field(default=None, alias="category", description="Category of supply, e.g. central, non-stock, etc. This is used to support work flows associated with the supply process.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly this SupplyRequest should be addressed with respect to other requests.") - deliverFor_field: ReferenceModel = Field(default=None, alias="deliverFor", description="The patient to whom the supply will be given or for whom they will be used.") - item_field: CodeableReferenceModel = Field(default=None, alias="item", description="The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.") - quantity_field: QuantityModel = Field(default=None, alias="quantity", description="The amount that is being ordered of the indicated item.") - parameter_field: List[SupplyRequest_ParameterModel] = Field(default_factory=list, alias="parameter", description="Specific parameters for the ordered item. For example, the size of the indicated item.") - occurrencePeriod_field: PeriodModel = Field(default=None, alias="occurrencePeriod", description="When the request should be fulfilled.") - occurrenceTiming_field: TimingModel = Field(default=None, alias="occurrenceTiming", description="When the request should be fulfilled.") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="When the request was made.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The device, practitioner, etc. who initiated the request.") - supplier_field: List[ReferenceModel] = Field(default_factory=list, alias="supplier", description="Who is intended to fulfill the request.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="The reason why the supply item was requested.") - deliverFrom_field: ReferenceModel = Field(default=None, alias="deliverFrom", description="Where the supply is expected to come from.") - deliverTo_field: ReferenceModel = Field(default=None, alias="deliverTo", description="Where the supply is destined to go.") - -class SupplyRequest_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A code or string that identifies the device detail being asserted.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the device detail.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the device detail.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the device detail.") - -class TaskModel(BaseModel): - resourceType_field: str = "Task" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="The business identifier for this task.") - instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.") - instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="BasedOn refers to a higher-level authorization that triggered the creation of the task. It references a request resource such as a ServiceRequest, MedicationRequest, CarePlan, etc. which is distinct from the request resource the task is seeking to fulfill. This latter resource is referenced by focus. For example, based on a CarePlan (= basedOn), a task is created to fulfill a ServiceRequest ( = focus ) to collect a specimen from a patient.") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Task and Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="Task that this particular task is part of.") - status_field: codeModel = Field(default=None, alias="status", description="The current status of the task.") - statusReason_field: CodeableReferenceModel = Field(default=None, alias="statusReason", description="An explanation as to why this task is held, failed, was refused, etc.") - businessStatus_field: CodeableConceptModel = Field(default=None, alias="businessStatus", description="Contains business-specific nuances of the business state.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Task should be addressed with respect to other requests.") - doNotPerform_field: booleanModel = Field(default=None, alias="doNotPerform", description="If true indicates that the Task is asking for the specified action to *not* occur.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A name or code (or both) briefly describing what the task involves.") - description_field: stringModel = Field(default=None, alias="description", description="A free-text description of what is to be performed.") - focus_field: ReferenceModel = Field(default=None, alias="focus", description="The request being fulfilled or the resource being manipulated (changed, suspended, etc.) by this task.") - for_field: ReferenceModel = Field(default=None, alias="for", description="The entity who benefits from the performance of the service specified in the task (e.g., the patient).") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was created.") - requestedPeriod_field: PeriodModel = Field(default=None, alias="requestedPeriod", description="Indicates the start and/or end of the period of time when completion of the task is desired to take place.") - executionPeriod_field: PeriodModel = Field(default=None, alias="executionPeriod", description="Identifies the time action was first taken against the task (start) and/or the time final action was taken against the task prior to marking it as completed (end).") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="The date and time this task was created.") - lastModified_field: dateTimeModel = Field(default=None, alias="lastModified", description="The date and time of last modification to this task.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The creator of the task.") - requestedPerformer_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="requestedPerformer", description="The kind of participant or specific participant that should perform the task.") - owner_field: ReferenceModel = Field(default=None, alias="owner", description="Party responsible for managing task execution.") - performer_field: List[Task_PerformerModel] = Field(default_factory=list, alias="performer", description="The entity who performed the requested task.") - location_field: ReferenceModel = Field(default=None, alias="location", description="Principal physical location where this task is performed.") - reason_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="reason", description="A description, code, or reference indicating why this task needs to be performed.") - insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Task.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Free-text information captured about the task as it progresses.") - relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the task.") - restriction_field: Task_RestrictionModel = Field(default=None, alias="restriction", description="If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.") - input_field: List[Task_InputModel] = Field(default_factory=list, alias="input", description="Additional information that may be needed in the execution of the task.") - output_field: List[Task_OutputModel] = Field(default_factory=list, alias="output", description="Outputs produced by the Task.") - -class Task_PerformerModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - function_field: CodeableConceptModel = Field(default=None, alias="function", description="A code or description of the performer of the task.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="The actor or entity who performed the task.") - -class Task_RestrictionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - repetitions_field: positiveIntModel = Field(default=None, alias="repetitions", description="Indicates the number of times the requested action should occur.") - period_field: PeriodModel = Field(default=None, alias="period", description="The time-period for which fulfillment is sought. This must fall within the overall time period authorized in the referenced request. E.g. ServiceRequest.occurance[x].") - recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.") - -class Task_InputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code or description indicating how the input is intended to be used as part of the task execution.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the input parameter as a basic type.") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the input parameter as a basic type.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the input parameter as a basic type.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the input parameter as a basic type.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the input parameter as a basic type.") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the input parameter as a basic type.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the input parameter as a basic type.") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the input parameter as a basic type.") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the input parameter as a basic type.") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the input parameter as a basic type.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the input parameter as a basic type.") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the input parameter as a basic type.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the input parameter as a basic type.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the input parameter as a basic type.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the input parameter as a basic type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the input parameter as a basic type.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the input parameter as a basic type.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the input parameter as a basic type.") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the input parameter as a basic type.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the input parameter as a basic type.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the input parameter as a basic type.") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the input parameter as a basic type.") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the input parameter as a basic type.") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the input parameter as a basic type.") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the input parameter as a basic type.") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the input parameter as a basic type.") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the input parameter as a basic type.") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the input parameter as a basic type.") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the input parameter as a basic type.") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the input parameter as a basic type.") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the input parameter as a basic type.") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the input parameter as a basic type.") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the input parameter as a basic type.") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the input parameter as a basic type.") - -class Task_OutputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The name of the Output parameter.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the Output parameter as a basic type.") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the Output parameter as a basic type.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the Output parameter as a basic type.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the Output parameter as a basic type.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the Output parameter as a basic type.") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the Output parameter as a basic type.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the Output parameter as a basic type.") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the Output parameter as a basic type.") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the Output parameter as a basic type.") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the Output parameter as a basic type.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the Output parameter as a basic type.") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the Output parameter as a basic type.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the Output parameter as a basic type.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the Output parameter as a basic type.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the Output parameter as a basic type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the Output parameter as a basic type.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the Output parameter as a basic type.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the Output parameter as a basic type.") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the Output parameter as a basic type.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the Output parameter as a basic type.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the Output parameter as a basic type.") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the Output parameter as a basic type.") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the Output parameter as a basic type.") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the Output parameter as a basic type.") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the Output parameter as a basic type.") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the Output parameter as a basic type.") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the Output parameter as a basic type.") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the Output parameter as a basic type.") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the Output parameter as a basic type.") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the Output parameter as a basic type.") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the Output parameter as a basic type.") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the Output parameter as a basic type.") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the Output parameter as a basic type.") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the Output parameter as a basic type.") - -class TerminologyCapabilitiesModel(BaseModel): - resourceType_field: str = "TerminologyCapabilities" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this terminology capabilities when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this terminology capabilities when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the terminology capabilities.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this terminology capabilities. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the terminology capabilities was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the terminology capabilities changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the terminology capabilities.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate terminology capabilities instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the terminology capabilities is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this terminology capabilities is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - kind_field: codeModel = Field(default=None, alias="kind", description="The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).") - software_field: TerminologyCapabilities_SoftwareModel = Field(default=None, alias="software", description="Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation.") - implementation_field: TerminologyCapabilities_ImplementationModel = Field(default=None, alias="implementation", description="Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program.") - lockedDate_field: booleanModel = Field(default=None, alias="lockedDate", description="Whether the server supports lockedDate.") - codeSystem_field: List[TerminologyCapabilities_CodeSystemModel] = Field(default_factory=list, alias="codeSystem", description="Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource.") - expansion_field: TerminologyCapabilities_ExpansionModel = Field(default=None, alias="expansion", description="Information about the [ValueSet/$expand](valueset-operation-expand.html) operation.") - codeSearch_field: codeModel = Field(default=None, alias="codeSearch", description="The degree to which the server supports the code search parameter on ValueSet, if it is supported.") - validateCode_field: TerminologyCapabilities_ValidateCodeModel = Field(default=None, alias="validateCode", description="Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation.") - translation_field: TerminologyCapabilities_TranslationModel = Field(default=None, alias="translation", description="Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation.") - closure_field: TerminologyCapabilities_ClosureModel = Field(default=None, alias="closure", description="Whether the $closure operation is supported.") - -class TerminologyCapabilities_SoftwareModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Name the software is known by.") - version_field: stringModel = Field(default=None, alias="version", description="The version identifier for the software covered by this statement.") - -class TerminologyCapabilities_ImplementationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: stringModel = Field(default=None, alias="description", description="Information about the specific installation that this terminology capability statement relates to.") - url_field: urlModel = Field(default=None, alias="url", description="An absolute base URL for the implementation.") - -class TerminologyCapabilities_CodeSystemModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - uri_field: canonicalModel = Field(default=None, alias="uri", description="Canonical identifier for the code system, represented as a URI.") - version_field: List[TerminologyCapabilities_VersionModel] = Field(default_factory=list, alias="version", description="For the code system, a list of versions that are supported by the server.") - content_field: codeModel = Field(default=None, alias="content", description="The extent of the content of the code system (the concepts and codes it defines) are represented in this resource instance.") - subsumption_field: booleanModel = Field(default=None, alias="subsumption", description="True if subsumption is supported for this version of the code system.") - -class TerminologyCapabilities_VersionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: stringModel = Field(default=None, alias="code", description="For version-less code systems, there should be a single version with no identifier.") - isDefault_field: booleanModel = Field(default=None, alias="isDefault", description="If this is the default version for this code system.") - compositional_field: booleanModel = Field(default=None, alias="compositional", description="If the compositional grammar defined by the code system is supported.") - language_field: List[codeModel] = Field(default_factory=list, alias="language", description="Language Displays supported.") - filter_field: List[TerminologyCapabilities_FilterModel] = Field(default_factory=list, alias="filter", description="Filter Properties supported.") - property_field: List[codeModel] = Field(default_factory=list, alias="property", description="Properties supported for $lookup.") - -class TerminologyCapabilities_FilterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Code of the property supported.") - op_field: List[codeModel] = Field(default_factory=list, alias="op", description="Operations supported for the property.") - -class TerminologyCapabilities_ExpansionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - hierarchical_field: booleanModel = Field(default=None, alias="hierarchical", description="Whether the server can return nested value sets.") - paging_field: booleanModel = Field(default=None, alias="paging", description="Whether the server supports paging on expansion.") - incomplete_field: booleanModel = Field(default=None, alias="incomplete", description="True if requests for incomplete expansions are allowed.") - parameter_field: List[TerminologyCapabilities_ParameterModel] = Field(default_factory=list, alias="parameter", description="Supported expansion parameter.") - textFilter_field: markdownModel = Field(default=None, alias="textFilter", description="Documentation about text searching works.") - -class TerminologyCapabilities_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: codeModel = Field(default=None, alias="name", description="Name of the supported expansion parameter.") - documentation_field: stringModel = Field(default=None, alias="documentation", description="Description of support for parameter.") - -class TerminologyCapabilities_ValidateCodeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - translations_field: booleanModel = Field(default=None, alias="translations", description="Whether translations are validated.") - -class TerminologyCapabilities_TranslationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - needsMap_field: booleanModel = Field(default=None, alias="needsMap", description="Whether the client must identify the map.") - -class TerminologyCapabilities_ClosureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - translation_field: booleanModel = Field(default=None, alias="translation", description="If cross-system closure is supported.") - -class TestPlanModel(BaseModel): - resourceType_field: str = "TestPlan" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this test plan when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this test plan is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the test plan is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this test plan when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the test plan when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the test plan author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the test plan. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the test plan.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this test plan. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this test plan is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the test plan was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the test plan changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the test plan.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the test plan from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate test plan instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the test plan is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this test plan is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the test plan and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the test plan. The short copyright declaration (e.g. (c) '2015+ xyz organization' should be sent in the copyrightLabel element.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - category_field: List[CodeableConceptModel] = Field(default_factory=list, alias="category", description="The category of the Test Plan - can be acceptance, unit, performance, etc.") - scope_field: List[ReferenceModel] = Field(default_factory=list, alias="scope", description="What is being tested with this Test Plan - a conformance resource, or narrative criteria, or an external reference...") - testTools_field: markdownModel = Field(default=None, alias="testTools", description="A description of test tools to be used in the test plan.") - dependency_field: List[TestPlan_DependencyModel] = Field(default_factory=list, alias="dependency", description="The required criteria to execute the test plan - e.g. preconditions, previous tests...") - exitCriteria_field: markdownModel = Field(default=None, alias="exitCriteria", description="The threshold or criteria for the test plan to be considered successfully executed - narrative.") - testCase_field: List[TestPlan_TestCaseModel] = Field(default_factory=list, alias="testCase", description="The individual test cases that are part of this plan, when they they are made explicit.") - -class TestPlan_DependencyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="A textual description of the criterium - what is needed for the dependency to be considered met.") - predecessor_field: ReferenceModel = Field(default=None, alias="predecessor", description="Predecessor test plans - those that are expected to be successfully performed as a dependency for the execution of this test plan.") - -class TestPlan_TestCaseModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - sequence_field: integerModel = Field(default=None, alias="sequence", description="Sequence of test case - an ordinal number that indicates the order for the present test case in the test plan.") - scope_field: List[ReferenceModel] = Field(default_factory=list, alias="scope", description="The scope or artifact covered by the case, when the individual test case is associated with a testable artifact.") - dependency_field: List[TestPlan_Dependency1Model] = Field(default_factory=list, alias="dependency", description="The required criteria to execute the test case - e.g. preconditions, previous tests.") - testRun_field: List[TestPlan_TestRunModel] = Field(default_factory=list, alias="testRun", description="The actual test to be executed.") - testData_field: List[TestPlan_TestDataModel] = Field(default_factory=list, alias="testData", description="The test data used in the test case.") - assertion_field: List[TestPlan_AssertionModel] = Field(default_factory=list, alias="assertion", description="The test assertions - the expectations of test results from the execution of the test case.") - -class TestPlan_Dependency1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - description_field: markdownModel = Field(default=None, alias="description", description="Description of the criteria.") - predecessor_field: ReferenceModel = Field(default=None, alias="predecessor", description="Link to predecessor test plans.") - -class TestPlan_TestRunModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - narrative_field: markdownModel = Field(default=None, alias="narrative", description="The narrative description of the tests.") - script_field: TestPlan_ScriptModel = Field(default=None, alias="script", description="The test cases in a structured language e.g. gherkin, Postman, or FHIR TestScript.") - -class TestPlan_ScriptModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The language for the test cases e.g. 'gherkin', 'testscript'.") - sourceReference_field: ReferenceModel = Field(default=None, alias="sourceReference", description="The actual content of the cases - references to TestScripts or externally defined content.") - -class TestPlan_TestDataModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodingModel = Field(default=None, alias="type", description="The type of test data description, e.g. 'synthea'.") - content_field: ReferenceModel = Field(default=None, alias="content", description="The actual test resources when they exist.") - sourceReference_field: ReferenceModel = Field(default=None, alias="sourceReference", description="Pointer to a definition of test resources - narrative or structured e.g. synthetic data generation, etc.") - -class TestPlan_AssertionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="The test assertion type - this can be used to group assertions as 'required' or 'optional', or can be used for other classification of the assertion.") - object_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="object", description="The focus or object of the assertion i.e. a resource.") - result_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="result", description="The test assertion - the expected outcome from the test case execution.") - -class TestReportModel(BaseModel): - resourceType_field: str = "TestReport" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="Identifier for the TestReport assigned for external purposes outside the context of FHIR.") - name_field: stringModel = Field(default=None, alias="name", description="A free text natural language name identifying the executed TestReport.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of this test report.") - testScript_field: canonicalModel = Field(default=None, alias="testScript", description="Ideally this is an absolute URL that is used to identify the version-specific TestScript that was executed, matching the `TestScript.url`.") - result_field: codeModel = Field(default=None, alias="result", description="The overall result from the execution of the TestScript.") - score_field: decimalModel = Field(default=None, alias="score", description="The final score (percentage of tests passed) resulting from the execution of the TestScript.") - tester_field: stringModel = Field(default=None, alias="tester", description="Name of the tester producing this report (Organization or individual).") - issued_field: dateTimeModel = Field(default=None, alias="issued", description="When the TestScript was executed and this TestReport was generated.") - participant_field: List[TestReport_ParticipantModel] = Field(default_factory=list, alias="participant", description="A participant in the test execution, either the execution engine, a client, or a server.") - setup_field: TestReport_SetupModel = Field(default=None, alias="setup", description="The results of the series of required setup operations before the tests were executed.") - test_field: List[TestReport_TestModel] = Field(default_factory=list, alias="test", description="A test executed from the test script.") - teardown_field: TestReport_TeardownModel = Field(default=None, alias="teardown", description="The results of the series of operations required to clean up after all the tests were executed (successfully or otherwise).") - -class TestReport_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: codeModel = Field(default=None, alias="type", description="The type of participant.") - uri_field: uriModel = Field(default=None, alias="uri", description="The uri of the participant. An absolute URL is preferred.") - display_field: stringModel = Field(default=None, alias="display", description="The display name of the participant.") - -class TestReport_SetupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - action_field: List[TestReport_ActionModel] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") - -class TestReport_ActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - operation_field: TestReport_OperationModel = Field(default=None, alias="operation", description="The operation performed.") - assert_field: TestReport_AssertModel = Field(default=None, alias="assert", description="The results of the assertion performed on the previous operations.") - -class TestReport_OperationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - result_field: codeModel = Field(default=None, alias="result", description="The result of this operation.") - message_field: markdownModel = Field(default=None, alias="message", description="An explanatory message associated with the result.") - detail_field: uriModel = Field(default=None, alias="detail", description="A link to further details on the result.") - -class TestReport_AssertModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - result_field: codeModel = Field(default=None, alias="result", description="The result of this assertion.") - message_field: markdownModel = Field(default=None, alias="message", description="An explanatory message associated with the result.") - detail_field: stringModel = Field(default=None, alias="detail", description="A link to further details on the result.") - requirement_field: List[TestReport_RequirementModel] = Field(default_factory=list, alias="requirement", description="Links or references providing traceability to the testing requirements for this assert.") - -class TestReport_RequirementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - -class TestReport_TestModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The name of this test used for tracking/logging purposes by test engines.") - description_field: stringModel = Field(default=None, alias="description", description="A short description of the test used by test engines for tracking and reporting purposes.") - action_field: List[TestReport_Action1Model] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") - -class TestReport_Action1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - operation_field: TestReport_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") - assert_field: TestReport_AssertModel = Field(default=None, alias="assert", description="The results of the assertion performed on the previous operations.") - -class TestReport_TeardownModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - action_field: List[TestReport_Action2Model] = Field(default_factory=list, alias="action", description="The teardown action will only contain an operation.") - -class TestReport_Action2Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - operation_field: TestReport_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") - -class TestScriptModel(BaseModel): - resourceType_field: str = "TestScript" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this test script when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this test script is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the test script is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this test script when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the test script when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the test script author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the test script. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the test script.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this test script. Enables tracking the life-cycle of the content.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this test script is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the test script was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the test script changes.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the test script.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the test script from a consumer's perspective.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate test script instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the test script is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this test script is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the test script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the test script.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - origin_field: List[TestScript_OriginModel] = Field(default_factory=list, alias="origin", description="An abstract server used in operations within this test script in the origin element.") - destination_field: List[TestScript_DestinationModel] = Field(default_factory=list, alias="destination", description="An abstract server used in operations within this test script in the destination element.") - metadata_field: TestScript_MetadataModel = Field(default=None, alias="metadata", description="The required capability must exist and are assumed to function correctly on the FHIR server being tested.") - scope_field: List[TestScript_ScopeModel] = Field(default_factory=list, alias="scope", description="The scope indicates a conformance artifact that is tested by the test(s) within this test case and the expectation of the test outcome(s) as well as the intended test phase inclusion.") - fixture_field: List[TestScript_FixtureModel] = Field(default_factory=list, alias="fixture", description="Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.") - profile_field: List[canonicalModel] = Field(default_factory=list, alias="profile", description="Reference to the profile to be used for validation.") - variable_field: List[TestScript_VariableModel] = Field(default_factory=list, alias="variable", description="Variable is set based either on element value in response body or on header field value in the response headers.") - setup_field: TestScript_SetupModel = Field(default=None, alias="setup", description="A series of required setup operations before tests are executed.") - test_field: List[TestScript_TestModel] = Field(default_factory=list, alias="test", description="A test in this script.") - teardown_field: TestScript_TeardownModel = Field(default=None, alias="teardown", description="A series of operations required to clean up after all the tests are executed (successfully or otherwise).") - -class TestScript_OriginModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - index_field: integerModel = Field(default=None, alias="index", description="Abstract name given to an origin server in this test script. The name is provided as a number starting at 1.") - profile_field: CodingModel = Field(default=None, alias="profile", description="The type of origin profile the test system supports.") - url_field: urlModel = Field(default=None, alias="url", description="The explicit url path of the origin server used in this test script.") - -class TestScript_DestinationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - index_field: integerModel = Field(default=None, alias="index", description="Abstract name given to a destination server in this test script. The name is provided as a number starting at 1.") - profile_field: CodingModel = Field(default=None, alias="profile", description="The type of destination profile the test system supports.") - url_field: urlModel = Field(default=None, alias="url", description="The explicit url path of the destination server used in this test script.") - -class TestScript_MetadataModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - link_field: List[TestScript_LinkModel] = Field(default_factory=list, alias="link", description="A link to the FHIR specification that this test is covering.") - capability_field: List[TestScript_CapabilityModel] = Field(default_factory=list, alias="capability", description="Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.") - -class TestScript_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="URL to a particular requirement or feature within the FHIR specification.") - description_field: stringModel = Field(default=None, alias="description", description="Short description of the link.") - -class TestScript_CapabilityModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - required_field: booleanModel = Field(default=None, alias="required", description="Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.") - validated_field: booleanModel = Field(default=None, alias="validated", description="Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.") - description_field: stringModel = Field(default=None, alias="description", description="Description of the capabilities that this test script is requiring the server to support.") - origin_field: List[integerModel] = Field(default_factory=list, alias="origin", description="Which origin server these requirements apply to.") - destination_field: integerModel = Field(default=None, alias="destination", description="Which server these requirements apply to.") - link_field: List[uriModel] = Field(default_factory=list, alias="link", description="Links to the FHIR specification that describes this interaction and the resources involved in more detail.") - capabilities_field: canonicalModel = Field(default=None, alias="capabilities", description="Minimum capabilities required of server for test script to execute successfully. If server does not meet at a minimum the referenced capability statement, then all tests in this script are skipped.") - -class TestScript_ScopeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - artifact_field: canonicalModel = Field(default=None, alias="artifact", description="The specific conformance artifact being tested. The canonical reference can be version-specific.") - conformance_field: CodeableConceptModel = Field(default=None, alias="conformance", description="The expectation of whether the test must pass for the system to be considered conformant with the artifact: required - all tests are expected to pass, optional - all test are expected to pass but non-pass status may be allowed, strict - all tests are expected to pass and warnings are treated as a failure.") - phase_field: CodeableConceptModel = Field(default=None, alias="phase", description="The phase of testing for this artifact: unit - development / implementation phase, integration - internal system to system phase, production - live system to system phase (Note, this may involve pii/phi data).") - -class TestScript_FixtureModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - autocreate_field: booleanModel = Field(default=None, alias="autocreate", description="Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.") - autodelete_field: booleanModel = Field(default=None, alias="autodelete", description="Whether or not to implicitly delete the fixture during teardown. If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.") - resource_field: ReferenceModel = Field(default=None, alias="resource", description="Reference to the resource (containing the contents of the resource needed for operations). This is allowed to be a Parameters resource.") - -class TestScript_VariableModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Descriptive name for this variable.") - defaultValue_field: stringModel = Field(default=None, alias="defaultValue", description="A default, hard-coded, or user-defined value for this variable.") - description_field: stringModel = Field(default=None, alias="description", description="A free text natural language description of the variable and its purpose.") - expression_field: stringModel = Field(default=None, alias="expression", description="The FHIRPath expression for a specific value to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified.") - headerField_field: stringModel = Field(default=None, alias="headerField", description="Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.") - hint_field: stringModel = Field(default=None, alias="hint", description="Displayable text string with hint help information to the user when entering a default value.") - path_field: stringModel = Field(default=None, alias="path", description="XPath or JSONPath to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified.") - sourceId_field: idModel = Field(default=None, alias="sourceId", description="Fixture to evaluate the XPath/JSONPath expression or the headerField against within this variable.") - -class TestScript_SetupModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - action_field: List[TestScript_ActionModel] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") - -class TestScript_ActionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - operation_field: TestScript_OperationModel = Field(default=None, alias="operation", description="The operation to perform.") - assert_field: TestScript_AssertModel = Field(default=None, alias="assert", description="Evaluates the results of previous operations to determine if the server under test behaves appropriately.") - -class TestScript_OperationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodingModel = Field(default=None, alias="type", description="Server interaction or operation type.") - resource_field: uriModel = Field(default=None, alias="resource", description="The type of the FHIR resource. See the [resource list](resourcelist.html). Data type of uri is needed when non-HL7 artifacts are identified.") - label_field: stringModel = Field(default=None, alias="label", description="The label would be used for tracking/logging purposes by test engines.") - description_field: stringModel = Field(default=None, alias="description", description="The description would be used by test engines for tracking and reporting purposes.") - accept_field: codeModel = Field(default=None, alias="accept", description="The mime-type to use for RESTful operation in the 'Accept' header.") - contentType_field: codeModel = Field(default=None, alias="contentType", description="The mime-type to use for RESTful operation in the 'Content-Type' header.") - destination_field: integerModel = Field(default=None, alias="destination", description="The server where the request message is destined for. Must be one of the server numbers listed in TestScript.destination section.") - encodeRequestUrl_field: booleanModel = Field(default=None, alias="encodeRequestUrl", description="Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.") - method_field: codeModel = Field(default=None, alias="method", description="The HTTP method the test engine MUST use for this operation regardless of any other operation details.") - origin_field: integerModel = Field(default=None, alias="origin", description="The server where the request message originates from. Must be one of the server numbers listed in TestScript.origin section.") - params_field: stringModel = Field(default=None, alias="params", description="Path plus parameters after [type]. Used to set parts of the request URL explicitly.") - requestHeader_field: List[TestScript_RequestHeaderModel] = Field(default_factory=list, alias="requestHeader", description="Header elements would be used to set HTTP headers.") - requestId_field: idModel = Field(default=None, alias="requestId", description="The fixture id (maybe new) to map to the request.") - responseId_field: idModel = Field(default=None, alias="responseId", description="The fixture id (maybe new) to map to the response.") - sourceId_field: idModel = Field(default=None, alias="sourceId", description="The id of the fixture used as the body of a PUT or POST request.") - targetId_field: idModel = Field(default=None, alias="targetId", description="Id of fixture used for extracting the [id], [type], and [vid] for GET requests.") - url_field: stringModel = Field(default=None, alias="url", description="Complete request URL.") - -class TestScript_RequestHeaderModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - field_field: stringModel = Field(default=None, alias="field", description="The HTTP header field e.g. Accept.") - value_field: stringModel = Field(default=None, alias="value", description="The value of the header e.g. application/fhir+xml.") - -class TestScript_AssertModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - label_field: stringModel = Field(default=None, alias="label", description="The label would be used for tracking/logging purposes by test engines.") - description_field: stringModel = Field(default=None, alias="description", description="The description would be used by test engines for tracking and reporting purposes.") - direction_field: codeModel = Field(default=None, alias="direction", description="The direction to use for the assertion.") - compareToSourceId_field: stringModel = Field(default=None, alias="compareToSourceId", description="Id of the source fixture used as the contents to be evaluated by either the source/expression or sourceId/path definition.") - compareToSourceExpression_field: stringModel = Field(default=None, alias="compareToSourceExpression", description="The FHIRPath expression for a specific value to evaluate against the source fixture. When compareToSourceId is defined, either compareToSourceExpression or compareToSourcePath must be defined, but not both.") - compareToSourcePath_field: stringModel = Field(default=None, alias="compareToSourcePath", description="XPath or JSONPath expression to evaluate against the source fixture. When compareToSourceId is defined, either compareToSourceExpression or compareToSourcePath must be defined, but not both.") - contentType_field: codeModel = Field(default=None, alias="contentType", description="The mime-type contents to compare against the request or response message 'Content-Type' header.") - defaultManualCompletion_field: codeModel = Field(default=None, alias="defaultManualCompletion", description="The default manual completion outcome applied to this assertion.") - expression_field: stringModel = Field(default=None, alias="expression", description="The FHIRPath expression to be evaluated against the request or response message contents - HTTP headers and payload.") - headerField_field: stringModel = Field(default=None, alias="headerField", description="The HTTP header field name e.g. 'Location'.") - minimumId_field: stringModel = Field(default=None, alias="minimumId", description="The ID of a fixture. Asserts that the response contains at a minimum the fixture specified by minimumId.") - navigationLinks_field: booleanModel = Field(default=None, alias="navigationLinks", description="Whether or not the test execution performs validation on the bundle navigation links.") - operator_field: codeModel = Field(default=None, alias="operator", description="The operator type defines the conditional behavior of the assert.") - path_field: stringModel = Field(default=None, alias="path", description="The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server.") - requestMethod_field: codeModel = Field(default=None, alias="requestMethod", description="The request method or HTTP operation code to compare against that used by the client system under test.") - requestURL_field: stringModel = Field(default=None, alias="requestURL", description="The value to use in a comparison against the request URL path string.") - resource_field: uriModel = Field(default=None, alias="resource", description="The type of the resource. See the [resource list](resourcelist.html).") - response_field: codeModel = Field(default=None, alias="response", description="continue | switchingProtocols | okay | created | accepted | nonAuthoritativeInformation | noContent | resetContent | partialContent | multipleChoices | movedPermanently | found | seeOther | notModified | useProxy | temporaryRedirect | permanentRedirect | badRequest | unauthorized | paymentRequired | forbidden | notFound | methodNotAllowed | notAcceptable | proxyAuthenticationRequired | requestTimeout | conflict | gone | lengthRequired | preconditionFailed | contentTooLarge | uriTooLong | unsupportedMediaType | rangeNotSatisfiable | expectationFailed | misdirectedRequest | unprocessableContent | upgradeRequired | internalServerError | notImplemented | badGateway | serviceUnavailable | gatewayTimeout | httpVersionNotSupported.") - responseCode_field: stringModel = Field(default=None, alias="responseCode", description="The value of the HTTP response code to be tested.") - sourceId_field: idModel = Field(default=None, alias="sourceId", description="Fixture to evaluate the XPath/JSONPath expression or the headerField against.") - stopTestOnFail_field: booleanModel = Field(default=None, alias="stopTestOnFail", description="Whether or not the current test execution will stop on failure for this assert.") - validateProfileId_field: idModel = Field(default=None, alias="validateProfileId", description="The ID of the Profile to validate against.") - value_field: stringModel = Field(default=None, alias="value", description="The value to compare to.") - warningOnly_field: booleanModel = Field(default=None, alias="warningOnly", description="Whether or not the test execution will produce a warning only on error for this assert.") - requirement_field: List[TestScript_RequirementModel] = Field(default_factory=list, alias="requirement", description="Links or references providing traceability to the testing requirements for this assert.") - -class TestScript_RequirementModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - -class TestScript_TestModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="The name of this test used for tracking/logging purposes by test engines.") - description_field: stringModel = Field(default=None, alias="description", description="A short description of the test used by test engines for tracking and reporting purposes.") - action_field: List[TestScript_Action1Model] = Field(default_factory=list, alias="action", description="Action would contain either an operation or an assertion.") - -class TestScript_Action1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - operation_field: TestScript_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") - assert_field: TestScript_AssertModel = Field(default=None, alias="assert", description="Evaluates the results of previous operations to determine if the server under test behaves appropriately.") - -class TestScript_TeardownModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - action_field: List[TestScript_Action2Model] = Field(default_factory=list, alias="action", description="The teardown action will only contain an operation.") - -class TestScript_Action2Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - operation_field: TestScript_OperationModel = Field(default=None, alias="operation", description="An operation would involve a REST request to a server.") - -class TransportModel(BaseModel): - resourceType_field: str = "Transport" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier for the transport event that is used to identify it across multiple disparate systems.") - instantiatesCanonical_field: canonicalModel = Field(default=None, alias="instantiatesCanonical", description="The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.") - instantiatesUri_field: uriModel = Field(default=None, alias="instantiatesUri", description="The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="BasedOn refers to a higher-level authorization that triggered the creation of the transport. It references a request resource such as a ServiceRequest or Transport, which is distinct from the request resource the Transport is seeking to fulfill. This latter resource is referenced by FocusOn. For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab.") - groupIdentifier_field: IdentifierModel = Field(default=None, alias="groupIdentifier", description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.") - partOf_field: List[ReferenceModel] = Field(default_factory=list, alias="partOf", description="A larger event of which this particular event is a component or step.") - status_field: codeModel = Field(default=None, alias="status", description="A code specifying the state of the transport event.") - statusReason_field: CodeableConceptModel = Field(default=None, alias="statusReason", description="An explanation as to why this transport is held, failed, was refused, etc.") - intent_field: codeModel = Field(default=None, alias="intent", description="Indicates the level of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.") - priority_field: codeModel = Field(default=None, alias="priority", description="Indicates how quickly the Transport should be addressed with respect to other requests.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="A name or code (or both) briefly describing what the transport involves.") - description_field: stringModel = Field(default=None, alias="description", description="A free-text description of what is to be performed.") - focus_field: ReferenceModel = Field(default=None, alias="focus", description="The request being actioned or the resource being manipulated by this transport.") - for_field: ReferenceModel = Field(default=None, alias="for", description="The entity who benefits from the performance of the service specified in the transport (e.g., the patient).") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="The healthcare event (e.g. a patient and healthcare provider interaction) during which this transport was created.") - completionTime_field: dateTimeModel = Field(default=None, alias="completionTime", description="Identifies the completion time of the event (the occurrence).") - authoredOn_field: dateTimeModel = Field(default=None, alias="authoredOn", description="The date and time this transport was created.") - lastModified_field: dateTimeModel = Field(default=None, alias="lastModified", description="The date and time of last modification to this transport.") - requester_field: ReferenceModel = Field(default=None, alias="requester", description="The creator of the transport.") - performerType_field: List[CodeableConceptModel] = Field(default_factory=list, alias="performerType", description="The kind of participant that should perform the transport.") - owner_field: ReferenceModel = Field(default=None, alias="owner", description="Individual organization or Device currently responsible for transport execution.") - location_field: ReferenceModel = Field(default=None, alias="location", description="Principal physical location where this transport is performed.") - insurance_field: List[ReferenceModel] = Field(default_factory=list, alias="insurance", description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Free-text information captured about the transport as it progresses.") - relevantHistory_field: List[ReferenceModel] = Field(default_factory=list, alias="relevantHistory", description="Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport.") - restriction_field: Transport_RestrictionModel = Field(default=None, alias="restriction", description="If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.") - input_field: List[Transport_InputModel] = Field(default_factory=list, alias="input", description="Additional information that may be needed in the execution of the transport.") - output_field: List[Transport_OutputModel] = Field(default_factory=list, alias="output", description="Outputs produced by the Transport.") - requestedLocation_field: ReferenceModel = Field(default=None, alias="requestedLocation", description="The desired or final location for the transport.") - currentLocation_field: ReferenceModel = Field(default=None, alias="currentLocation", description="The current location for the entity to be transported.") - reason_field: CodeableReferenceModel = Field(default=None, alias="reason", description="A resource reference indicating why this transport needs to be performed.") - history_field: ReferenceModel = Field(default=None, alias="history", description="The transport event prior to this one.") - -class Transport_RestrictionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - repetitions_field: positiveIntModel = Field(default=None, alias="repetitions", description="Indicates the number of times the requested action should occur.") - period_field: PeriodModel = Field(default=None, alias="period", description="Over what time-period is fulfillment sought.") - recipient_field: List[ReferenceModel] = Field(default_factory=list, alias="recipient", description="For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.") - -class Transport_InputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A code or description indicating how the input is intended to be used as part of the transport execution.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the input parameter as a basic type.") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the input parameter as a basic type.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the input parameter as a basic type.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the input parameter as a basic type.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the input parameter as a basic type.") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the input parameter as a basic type.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the input parameter as a basic type.") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the input parameter as a basic type.") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the input parameter as a basic type.") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the input parameter as a basic type.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the input parameter as a basic type.") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the input parameter as a basic type.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the input parameter as a basic type.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the input parameter as a basic type.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the input parameter as a basic type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the input parameter as a basic type.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the input parameter as a basic type.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the input parameter as a basic type.") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the input parameter as a basic type.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the input parameter as a basic type.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the input parameter as a basic type.") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the input parameter as a basic type.") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the input parameter as a basic type.") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the input parameter as a basic type.") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the input parameter as a basic type.") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the input parameter as a basic type.") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the input parameter as a basic type.") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the input parameter as a basic type.") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the input parameter as a basic type.") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the input parameter as a basic type.") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the input parameter as a basic type.") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the input parameter as a basic type.") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the input parameter as a basic type.") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the input parameter as a basic type.") - -class Transport_OutputModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="The name of the Output parameter.") - valueAddress_field: AddressModel = Field(default=None, alias="valueAddress", description="The value of the Output parameter as a basic type.") - valueAge_field: AgeModel = Field(default=None, alias="valueAge", description="The value of the Output parameter as a basic type.") - valueAnnotation_field: AnnotationModel = Field(default=None, alias="valueAnnotation", description="The value of the Output parameter as a basic type.") - valueAttachment_field: AttachmentModel = Field(default=None, alias="valueAttachment", description="The value of the Output parameter as a basic type.") - valueCodeableConcept_field: CodeableConceptModel = Field(default=None, alias="valueCodeableConcept", description="The value of the Output parameter as a basic type.") - valueCodeableReference_field: CodeableReferenceModel = Field(default=None, alias="valueCodeableReference", description="The value of the Output parameter as a basic type.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of the Output parameter as a basic type.") - valueContactPoint_field: ContactPointModel = Field(default=None, alias="valueContactPoint", description="The value of the Output parameter as a basic type.") - valueCount_field: CountModel = Field(default=None, alias="valueCount", description="The value of the Output parameter as a basic type.") - valueDistance_field: DistanceModel = Field(default=None, alias="valueDistance", description="The value of the Output parameter as a basic type.") - valueDuration_field: DurationModel = Field(default=None, alias="valueDuration", description="The value of the Output parameter as a basic type.") - valueHumanName_field: HumanNameModel = Field(default=None, alias="valueHumanName", description="The value of the Output parameter as a basic type.") - valueIdentifier_field: IdentifierModel = Field(default=None, alias="valueIdentifier", description="The value of the Output parameter as a basic type.") - valueMoney_field: MoneyModel = Field(default=None, alias="valueMoney", description="The value of the Output parameter as a basic type.") - valuePeriod_field: PeriodModel = Field(default=None, alias="valuePeriod", description="The value of the Output parameter as a basic type.") - valueQuantity_field: QuantityModel = Field(default=None, alias="valueQuantity", description="The value of the Output parameter as a basic type.") - valueRange_field: RangeModel = Field(default=None, alias="valueRange", description="The value of the Output parameter as a basic type.") - valueRatio_field: RatioModel = Field(default=None, alias="valueRatio", description="The value of the Output parameter as a basic type.") - valueRatioRange_field: RatioRangeModel = Field(default=None, alias="valueRatioRange", description="The value of the Output parameter as a basic type.") - valueReference_field: ReferenceModel = Field(default=None, alias="valueReference", description="The value of the Output parameter as a basic type.") - valueSampledData_field: SampledDataModel = Field(default=None, alias="valueSampledData", description="The value of the Output parameter as a basic type.") - valueSignature_field: SignatureModel = Field(default=None, alias="valueSignature", description="The value of the Output parameter as a basic type.") - valueTiming_field: TimingModel = Field(default=None, alias="valueTiming", description="The value of the Output parameter as a basic type.") - valueContactDetail_field: ContactDetailModel = Field(default=None, alias="valueContactDetail", description="The value of the Output parameter as a basic type.") - valueDataRequirement_field: DataRequirementModel = Field(default=None, alias="valueDataRequirement", description="The value of the Output parameter as a basic type.") - valueExpression_field: ExpressionModel = Field(default=None, alias="valueExpression", description="The value of the Output parameter as a basic type.") - valueParameterDefinition_field: ParameterDefinitionModel = Field(default=None, alias="valueParameterDefinition", description="The value of the Output parameter as a basic type.") - valueRelatedArtifact_field: RelatedArtifactModel = Field(default=None, alias="valueRelatedArtifact", description="The value of the Output parameter as a basic type.") - valueTriggerDefinition_field: TriggerDefinitionModel = Field(default=None, alias="valueTriggerDefinition", description="The value of the Output parameter as a basic type.") - valueUsageContext_field: UsageContextModel = Field(default=None, alias="valueUsageContext", description="The value of the Output parameter as a basic type.") - valueAvailability_field: AvailabilityModel = Field(default=None, alias="valueAvailability", description="The value of the Output parameter as a basic type.") - valueExtendedContactDetail_field: ExtendedContactDetailModel = Field(default=None, alias="valueExtendedContactDetail", description="The value of the Output parameter as a basic type.") - valueDosage_field: DosageModel = Field(default=None, alias="valueDosage", description="The value of the Output parameter as a basic type.") - valueMeta_field: MetaModel = Field(default=None, alias="valueMeta", description="The value of the Output parameter as a basic type.") - -class ValueSetModel(BaseModel): - resourceType_field: str = "ValueSet" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - url_field: uriModel = Field(default=None, alias="url", description="An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this value set is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the value set is stored on different servers.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance.") - version_field: stringModel = Field(default=None, alias="version", description="The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.") - versionAlgorithmCoding_field: CodingModel = Field(default=None, alias="versionAlgorithmCoding", description="Indicates the mechanism used to compare versions to determine which ValueSet is more current.") - name_field: stringModel = Field(default=None, alias="name", description="A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation.") - title_field: stringModel = Field(default=None, alias="title", description="A short, descriptive, user-friendly title for the value set.") - status_field: codeModel = Field(default=None, alias="status", description="The status of this value set. Enables tracking the life-cycle of the content. The status of the value set applies to the value set definition (ValueSet.compose) and the associated ValueSet metadata. Expansions do not have a state.") - experimental_field: booleanModel = Field(default=None, alias="experimental", description="A Boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.") - date_field: dateTimeModel = Field(default=None, alias="date", description="The date (and optionally time) when the value set metadata or content logical definition (.compose) was created or revised.") - publisher_field: stringModel = Field(default=None, alias="publisher", description="The name of the organization or individual responsible for the release and ongoing maintenance of the value set.") - contact_field: List[ContactDetailModel] = Field(default_factory=list, alias="contact", description="Contact details to assist a user in finding and communicating with the publisher.") - description_field: markdownModel = Field(default=None, alias="description", description="A free text natural language description of the value set from a consumer's perspective. The textual description specifies the span of meanings for concepts to be included within the Value Set Expansion, and also may specify the intended use and limitations of the Value Set.") - useContext_field: List[UsageContextModel] = Field(default_factory=list, alias="useContext", description="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate value set instances.") - jurisdiction_field: List[CodeableConceptModel] = Field(default_factory=list, alias="jurisdiction", description="A legal or geographic region in which the value set is intended to be used.") - purpose_field: markdownModel = Field(default=None, alias="purpose", description="Explanation of why this value set is needed and why it has been designed as it has.") - copyright_field: markdownModel = Field(default=None, alias="copyright", description="A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set.") - copyrightLabel_field: stringModel = Field(default=None, alias="copyrightLabel", description="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').") - approvalDate_field: dateModel = Field(default=None, alias="approvalDate", description="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") - lastReviewDate_field: dateModel = Field(default=None, alias="lastReviewDate", description="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") - effectivePeriod_field: PeriodModel = Field(default=None, alias="effectivePeriod", description="The period during which the ValueSet content was or is planned to be in active use.") - topic_field: List[CodeableConceptModel] = Field(default_factory=list, alias="topic", description="Descriptions related to the content of the ValueSet. Topics provide a high-level categorization as well as keywords for the ValueSet that can be useful for filtering and searching.") - author_field: List[ContactDetailModel] = Field(default_factory=list, alias="author", description="An individiual or organization primarily involved in the creation and maintenance of the ValueSet.") - editor_field: List[ContactDetailModel] = Field(default_factory=list, alias="editor", description="An individual or organization primarily responsible for internal coherence of the ValueSet.") - reviewer_field: List[ContactDetailModel] = Field(default_factory=list, alias="reviewer", description="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the ValueSet.") - endorser_field: List[ContactDetailModel] = Field(default_factory=list, alias="endorser", description="An individual or organization asserted by the publisher to be responsible for officially endorsing the ValueSet for use in some setting.") - relatedArtifact_field: List[RelatedArtifactModel] = Field(default_factory=list, alias="relatedArtifact", description="Related artifacts such as additional documentation, justification, dependencies, bibliographic references, and predecessor and successor artifacts.") - immutable_field: booleanModel = Field(default=None, alias="immutable", description="If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change.") - compose_field: ValueSet_ComposeModel = Field(default=None, alias="compose", description="A set of criteria that define the contents of the value set by including or excluding codes selected from the specified code system(s) that the value set draws from. This is also known as the Content Logical Definition (CLD).") - expansion_field: ValueSet_ExpansionModel = Field(default=None, alias="expansion", description="A value set can also be expanded, where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed.") - scope_field: ValueSet_ScopeModel = Field(default=None, alias="scope", description="Description of the semantic space the Value Set Expansion is intended to cover and should further clarify the text in ValueSet.description.") - -class ValueSet_ComposeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - lockedDate_field: dateModel = Field(default=None, alias="lockedDate", description="The Locked Date is the effective date that is used to determine the version of all referenced Code Systems and Value Set Definitions included in the compose that are not already tied to a specific version.") - inactive_field: booleanModel = Field(default=None, alias="inactive", description="Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable $expand parameters (but generally, inactive codes would be expected to be included).") - include_field: List[ValueSet_IncludeModel] = Field(default_factory=list, alias="include", description="Include one or more codes from a code system or other value set(s).") - exclude_field: List[ValueSet_IncludeModel] = Field(default_factory=list, alias="exclude", description="Exclude one or more codes from the value set based on code system filters and/or other value sets.") - property_field: List[stringModel] = Field(default_factory=list, alias="property", description="A property to return in the expansion, if the client doesn't ask for any particular properties. May be either a code from the code system definition (convenient) or a the formal URI that refers to the property. The special value '*' means all properties known to the server.") - -class ValueSet_IncludeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - system_field: uriModel = Field(default=None, alias="system", description="An absolute URI which is the code system from which the selected codes come from.") - version_field: stringModel = Field(default=None, alias="version", description="The version of the code system that the codes are selected from, or the special version '*' for all versions.") - concept_field: List[ValueSet_ConceptModel] = Field(default_factory=list, alias="concept", description="Specifies a concept to be included or excluded.") - filter_field: List[ValueSet_FilterModel] = Field(default_factory=list, alias="filter", description="Select concepts by specifying a matching criterion based on the properties (including relationships) defined by the system, or on filters defined by the system. If multiple filters are specified within the include, they SHALL all be true.") - valueSet_field: List[canonicalModel] = Field(default_factory=list, alias="valueSet", description="Selects the concepts found in this value set (based on its value set definition). This is an absolute URI that is a reference to ValueSet.url. If multiple value sets are specified this includes the intersection of the contents of all of the referenced value sets.") - copyright_field: stringModel = Field(default=None, alias="copyright", description="A copyright statement for the specific code system asserted by the containing ValueSet.compose.include element's system value (if the associated ValueSet.compose.include.version element is not present); or the code system and version combination (if the associated ValueSet.compose.include.version element is present).") - -class ValueSet_ConceptModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="Specifies a code for the concept to be included or excluded.") - display_field: stringModel = Field(default=None, alias="display", description="The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system.") - designation_field: List[ValueSet_DesignationModel] = Field(default_factory=list, alias="designation", description="Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc.") - -class ValueSet_DesignationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: codeModel = Field(default=None, alias="language", description="The language this designation is defined for.") - use_field: CodingModel = Field(default=None, alias="use", description="A code that represents types of uses of designations.") - additionalUse_field: List[CodingModel] = Field(default_factory=list, alias="additionalUse", description="Additional codes that detail how this designation would be used, if there is more than one use.") - value_field: stringModel = Field(default=None, alias="value", description="The text value for this designation.") - -class ValueSet_FilterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - property_field: codeModel = Field(default=None, alias="property", description="A code that identifies a property or a filter defined in the code system.") - op_field: codeModel = Field(default=None, alias="op", description="The kind of operation to perform as a part of the filter criteria.") - value_field: stringModel = Field(default=None, alias="value", description="The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value (if the filter represents a property defined in CodeSystem) or of the system filter value (if the filter represents a filter defined in CodeSystem) when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'.") - -class ValueSet_ExpansionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: uriModel = Field(default=None, alias="identifier", description="An identifier that uniquely identifies this expansion of the valueset, based on a unique combination of the provided parameters, the system default parameters, and the underlying system code system versions etc. Systems may re-use the same identifier as long as those factors remain the same, and the expansion is the same, but are not required to do so. This is a business identifier.") - next_field: uriModel = Field(default=None, alias="next", description="As per paging Search results, the next URLs are opaque to the client, have no dictated structure, and only the server understands them.") - timestamp_field: dateTimeModel = Field(default=None, alias="timestamp", description="The time at which the expansion was produced by the expanding system.") - total_field: integerModel = Field(default=None, alias="total", description="The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter.") - offset_field: integerModel = Field(default=None, alias="offset", description="If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL NOT be present.") - parameter_field: List[ValueSet_ParameterModel] = Field(default_factory=list, alias="parameter", description="A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion.") - property_field: List[ValueSet_PropertyModel] = Field(default_factory=list, alias="property", description="A property defines an additional slot through which additional information can be provided about a concept.") - contains_field: List[ValueSet_ContainsModel] = Field(default_factory=list, alias="contains", description="The codes that are contained in the value set expansion.") - -class ValueSet_ParameterModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - name_field: stringModel = Field(default=None, alias="name", description="Name of the input parameter to the $expand operation; may be a server-assigned name for additional default or other server-supplied parameters used to control the expansion process.") - -class ValueSet_PropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is used to identify the property. The code is used in ValueSet.expansion.contains.property.code.") - uri_field: uriModel = Field(default=None, alias="uri", description="Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code system.") - -class ValueSet_ContainsModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - system_field: uriModel = Field(default=None, alias="system", description="An absolute URI which is the code system in which the code for this item in the expansion is defined.") - abstract_field: booleanModel = Field(default=None, alias="abstract", description="If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value.") - inactive_field: booleanModel = Field(default=None, alias="inactive", description="If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data. It might not be known or specified whether a concept is inactive (and it may depend on the context of use).") - version_field: stringModel = Field(default=None, alias="version", description="The version of the code system from this code was taken. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.") - code_field: codeModel = Field(default=None, alias="code", description="The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set.") - display_field: stringModel = Field(default=None, alias="display", description="The recommended display for this item in the expansion.") - designation_field: List[ValueSet_DesignationModel] = Field(default_factory=list, alias="designation", description="Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation.") - property_field: List[ValueSet_Property1Model] = Field(default_factory=list, alias="property", description="A property value for this concept.") - contains_field: List[ValueSet_ContainsModel] = Field(default_factory=list, alias="contains", description="Other codes and entries contained under this entry in the hierarchy.") - -class ValueSet_Property1Model(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is a reference to ValueSet.expansion.property.code.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this property.") - subProperty_field: List[ValueSet_SubPropertyModel] = Field(default_factory=list, alias="subProperty", description="A subproperty value for this concept.") - -class ValueSet_SubPropertyModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - code_field: codeModel = Field(default=None, alias="code", description="A code that is a reference to ValueSet.expansion.property.code.") - valueCoding_field: CodingModel = Field(default=None, alias="valueCoding", description="The value of this subproperty.") - -class ValueSet_ScopeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - inclusionCriteria_field: stringModel = Field(default=None, alias="inclusionCriteria", description="Criteria describing which concepts or codes should be included and why.") - exclusionCriteria_field: stringModel = Field(default=None, alias="exclusionCriteria", description="Criteria describing which concepts or codes should be excluded and why.") - -class VerificationResultModel(BaseModel): - resourceType_field: str = "VerificationResult" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - target_field: List[ReferenceModel] = Field(default_factory=list, alias="target", description="A resource that was validated.") - targetLocation_field: List[stringModel] = Field(default_factory=list, alias="targetLocation", description="The fhirpath location(s) within the resource that was validated.") - need_field: CodeableConceptModel = Field(default=None, alias="need", description="The frequency with which the target must be validated (none; initial; periodic).") - status_field: codeModel = Field(default=None, alias="status", description="The validation status of the target (attested; validated; in process; requires revalidation; validation failed; revalidation failed).") - statusDate_field: dateTimeModel = Field(default=None, alias="statusDate", description="When the validation status was updated.") - validationType_field: CodeableConceptModel = Field(default=None, alias="validationType", description="What the target is validated against (nothing; primary source; multiple sources).") - validationProcess_field: List[CodeableConceptModel] = Field(default_factory=list, alias="validationProcess", description="The primary process by which the target is validated (edit check; value set; primary source; multiple sources; standalone; in context).") - frequency_field: TimingModel = Field(default=None, alias="frequency", description="Frequency of revalidation.") - lastPerformed_field: dateTimeModel = Field(default=None, alias="lastPerformed", description="The date/time validation was last completed (including failed validations).") - nextScheduled_field: dateModel = Field(default=None, alias="nextScheduled", description="The date when target is next validated, if appropriate.") - failureAction_field: CodeableConceptModel = Field(default=None, alias="failureAction", description="The result if validation fails (fatal; warning; record only; none).") - primarySource_field: List[VerificationResult_PrimarySourceModel] = Field(default_factory=list, alias="primarySource", description="Information about the primary source(s) involved in validation.") - attestation_field: VerificationResult_AttestationModel = Field(default=None, alias="attestation", description="Information about the entity attesting to information.") - validator_field: List[VerificationResult_ValidatorModel] = Field(default_factory=list, alias="validator", description="Information about the entity validating information.") - -class VerificationResult_PrimarySourceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - who_field: ReferenceModel = Field(default=None, alias="who", description="Reference to the primary source.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Type of primary source (License Board; Primary Education; Continuing Education; Postal Service; Relationship owner; Registration Authority; legal source; issuing source; authoritative source).") - communicationMethod_field: List[CodeableConceptModel] = Field(default_factory=list, alias="communicationMethod", description="Method for communicating with the primary source (manual; API; Push).") - validationStatus_field: CodeableConceptModel = Field(default=None, alias="validationStatus", description="Status of the validation of the target against the primary source (successful; failed; unknown).") - validationDate_field: dateTimeModel = Field(default=None, alias="validationDate", description="When the target was validated against the primary source.") - canPushUpdates_field: CodeableConceptModel = Field(default=None, alias="canPushUpdates", description="Ability of the primary source to push updates/alerts (yes; no; undetermined).") - pushTypeAvailable_field: List[CodeableConceptModel] = Field(default_factory=list, alias="pushTypeAvailable", description="Type of alerts/updates the primary source can send (specific requested changes; any changes; as defined by source).") - -class VerificationResult_AttestationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - who_field: ReferenceModel = Field(default=None, alias="who", description="The individual or organization attesting to information.") - onBehalfOf_field: ReferenceModel = Field(default=None, alias="onBehalfOf", description="When the who is asserting on behalf of another (organization or individual).") - communicationMethod_field: CodeableConceptModel = Field(default=None, alias="communicationMethod", description="The method by which attested information was submitted/retrieved (manual; API; Push).") - date_field: dateModel = Field(default=None, alias="date", description="The date the information was attested to.") - sourceIdentityCertificate_field: stringModel = Field(default=None, alias="sourceIdentityCertificate", description="A digital identity certificate associated with the attestation source.") - proxyIdentityCertificate_field: stringModel = Field(default=None, alias="proxyIdentityCertificate", description="A digital identity certificate associated with the proxy entity submitting attested information on behalf of the attestation source.") - proxySignature_field: SignatureModel = Field(default=None, alias="proxySignature", description="Signed assertion by the proxy entity indicating that they have the right to submit attested information on behalf of the attestation source.") - sourceSignature_field: SignatureModel = Field(default=None, alias="sourceSignature", description="Signed assertion by the attestation source that they have attested to the information.") - -class VerificationResult_ValidatorModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="Reference to the organization validating information.") - identityCertificate_field: stringModel = Field(default=None, alias="identityCertificate", description="A digital identity certificate associated with the validator.") - attestationSignature_field: SignatureModel = Field(default=None, alias="attestationSignature", description="Signed assertion by the validator that they have validated the information.") - -class VisionPrescriptionModel(BaseModel): - resourceType_field: str = "VisionPrescription" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") - meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") - contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="A unique identifier assigned to this vision prescription.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the resource instance.") - created_field: dateTimeModel = Field(default=None, alias="created", description="The date this resource was created.") - patient_field: ReferenceModel = Field(default=None, alias="patient", description="A resource reference to the person to whom the vision prescription applies.") - encounter_field: ReferenceModel = Field(default=None, alias="encounter", description="A reference to a resource that identifies the particular occurrence of contact between patient and health care provider during which the prescription was issued.") - dateWritten_field: dateTimeModel = Field(default=None, alias="dateWritten", description="The date (and perhaps time) when the prescription was written.") - prescriber_field: ReferenceModel = Field(default=None, alias="prescriber", description="The healthcare professional responsible for authorizing the prescription.") - lensSpecification_field: List[VisionPrescription_LensSpecificationModel] = Field(default_factory=list, alias="lensSpecification", description="Contain the details of the individual lens specifications and serves as the authorization for the fullfillment by certified professionals.") - -class VisionPrescription_LensSpecificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - product_field: CodeableConceptModel = Field(default=None, alias="product", description="Identifies the type of vision correction product which is required for the patient.") - eye_field: codeModel = Field(default=None, alias="eye", description="The eye for which the lens specification applies.") - sphere_field: decimalModel = Field(default=None, alias="sphere", description="Lens power measured in dioptres (0.25 units).") - cylinder_field: decimalModel = Field(default=None, alias="cylinder", description="Power adjustment for astigmatism measured in dioptres (0.25 units).") - axis_field: integerModel = Field(default=None, alias="axis", description="Adjustment for astigmatism measured in integer degrees.") - prism_field: List[VisionPrescription_PrismModel] = Field(default_factory=list, alias="prism", description="Allows for adjustment on two axis.") - add_field: decimalModel = Field(default=None, alias="add", description="Power adjustment for multifocal lenses measured in dioptres (0.25 units).") - power_field: decimalModel = Field(default=None, alias="power", description="Contact lens power measured in dioptres (0.25 units).") - backCurve_field: decimalModel = Field(default=None, alias="backCurve", description="Back curvature measured in millimetres.") - diameter_field: decimalModel = Field(default=None, alias="diameter", description="Contact lens diameter measured in millimetres.") - duration_field: QuantityModel = Field(default=None, alias="duration", description="The recommended maximum wear period for the lens.") - color_field: stringModel = Field(default=None, alias="color", description="Special color or pattern.") - brand_field: stringModel = Field(default=None, alias="brand", description="Brand recommendations or restrictions.") - note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Notes for special requirements such as coatings and lens materials.") - -class VisionPrescription_PrismModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - amount_field: decimalModel = Field(default=None, alias="amount", description="Amount of prism to compensate for eye alignment in fractional units.") - base_field: codeModel = Field(default=None, alias="base", description="The relative base, or reference lens edge, for the prism.") - -class Narrative_status(Enum): - pass - - -class Identifier_use(Enum): - pass - - -class Quantity_comparator(Enum): - pass - - -class Duration_comparator(Enum): - pass - - -class Distance_comparator(Enum): - pass - - -class Count_comparator(Enum): - pass - - -class Age_comparator(Enum): - pass - - -class HumanName_use(Enum): - pass - - -class Address_use(Enum): - pass - - -class Address_type(Enum): - pass - - -class ContactPoint_system(Enum): - pass - - -class ContactPoint_use(Enum): - pass - - -class Timing_Repeat_durationUnit(Enum): - pass - - -class Timing_Repeat_periodUnit(Enum): - pass - - -class Contributor_type(Enum): - pass - - -class DataRequirement_Sort_direction(Enum): - pass - - -class RelatedArtifact_type(Enum): - pass - - -class TriggerDefinition_type(Enum): - pass - - -class ElementDefinition_Slicing_rules(Enum): - pass - - -class ElementDefinition_Discriminator_type(Enum): - pass - - -class ElementDefinition_Type_versioning(Enum): - pass - - -class ElementDefinition_Constraint_severity(Enum): - pass - - -class ElementDefinition_Binding_strength(Enum): - pass - - -HumanNameModel.model_rebuild() From 0d8da2985cae6c1b97aac0a6c3ea07fc7b7094f2 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Fri, 3 May 2024 16:51:28 +0100 Subject: [PATCH 06/24] add refined fhir resources --- healthchain/fhir_resources/base_resources.py | 226 ++++++++++++++++++ .../fhir_resources/patient_resources.py | 97 ++++++++ .../fhir_resources/resource_registry.py | 165 +++++++++++++ 3 files changed, 488 insertions(+) create mode 100644 healthchain/fhir_resources/base_resources.py create mode 100644 healthchain/fhir_resources/patient_resources.py create mode 100644 healthchain/fhir_resources/resource_registry.py diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py new file mode 100644 index 0000000..d872110 --- /dev/null +++ b/healthchain/fhir_resources/base_resources.py @@ -0,0 +1,226 @@ + +from __future__ import annotations + +from pydantic import BaseModel, Field, conint +from typing_extensions import Annotated +from typing import List + +class booleanModel(BaseModel): + boolean: str = Field(pattern=r'^true|false$') + + class Config: + schema_extra = { + "description": "Value of true or false" + } + + +class canonicalModel(BaseModel): + canonical: str = Field(pattern=r'^\S*$') + + class Config: + schema_extra = { + "description": "A URI that is a reference to a canonical URL on a FHIR resource" + } + + +class codeModel(BaseModel): + code: str = Field(pattern=r'^[^\s]+( [^\s]+)*$') + + class Config: + schema_extra = { + "description": "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents" + } + + +class dateModel(BaseModel): + date: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$') + + class Config: + schema_extra = { + "description": "A date or partial date (e.g. just year or year + month). There is no UTC offset. The format is a union of the schema types gYear, gYearMonth and date. Dates SHALL be valid dates." + } + + +class dateTimeModel(BaseModel): + dateTime: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$') + + class Config: + schema_extra = { + "description": "A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a UTC offset SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates." + } + + +class decimalModel(BaseModel): + decimal: float = Field(pattern=r'^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$') + + class Config: + schema_extra = { + "description": "A rational number with implicit precision" + } + + +class idModel(BaseModel): + id: str = Field(pattern=r'^[A-Za-z0-9\-\.]{1,64}$') + + class Config: + schema_extra = { + "description": "Any combination of letters, numerals, - and ., with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive." + } + + +class instantModel(BaseModel): + instant: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$') + + class Config: + schema_extra = { + "description": "An instant in time - known at least to the second" + } + + +class integerModel(BaseModel): + integer: float = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') + + class Config: + schema_extra = { + "description": "A whole number" + } + + +class integer64Model(BaseModel): + integer64: str = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') + + class Config: + schema_extra = { + "description": "A very large whole number" + } + + +class markdownModel(BaseModel): + markdown: str = Field(pattern=r'^^[\s\S]+$$') + + class Config: + schema_extra = { + "description": "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine" + } + + +class oidModel(BaseModel): + oid: str = Field(pattern=r'^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$') + + class Config: + schema_extra = { + "description": "An OID represented as a URI" + } + + +class positiveIntModel(BaseModel): + positiveInt: Annotated[int, Field(strict=True, gt=0)] + + class Config: + schema_extra = { + "description": "An integer with a value that is positive (e.g. >0)" + } + + +class stringModel(BaseModel): + string: str = Field(pattern=r'^^[\s\S]+$$') + + class Config: + schema_extra = { + "description": "A sequence of Unicode characters" + } + + +class timeModel(BaseModel): + time: str = Field(pattern=r'^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$') + + class Config: + schema_extra = { + "description": "A time during the day, with no date specified" + } + + +class unsignedIntModel(BaseModel): + unsignedInt: float = Field(pattern=r'^[0]|([1-9][0-9]*)$') + + class Config: + schema_extra = { + "description": "An integer with a value that is not negative (e.g. >= 0)" + } + + +class uriModel(BaseModel): + uri: str = Field(pattern=r'^\S*$') + + class Config: + schema_extra = { + "description": "String of characters used to identify a name or a resource" + } + + +class urlModel(BaseModel): + url: str = Field(pattern=r'^\S*$') + + class Config: + schema_extra = { + "description": "A URI that is a literal reference" + } + + +class uuidModel(BaseModel): + uuid: str = Field(pattern=r'^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') + + class Config: + schema_extra = { + "description": "A UUID, represented as a URI" + } + + +class ExtensionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + url_field: uriModel = Field(default=None, alias="url", description="Source of the definition for the extension code - a logical name or a URL.") + + +class PeriodModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + start_field: dateTimeModel = Field(default=None, alias="start", description="The start of the period. The boundary is inclusive.") + end_field: dateTimeModel = Field(default=None, alias="end", description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.") + + +class IdentifierModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") + type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.") + system_field: uriModel = Field(default=None, alias="system", description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.") + value_field: stringModel = Field(default=None, alias="value", description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which identifier is/was valid for use.") + assigner_field: ReferenceModel = Field(default=None, alias="assigner", description="Organization that issued/manages the identifier.") + + +class CodingModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + system_field: uriModel = Field(default=None, alias="system", description="The identification of the code system that defines the meaning of the symbol in the code.") + version_field: stringModel = Field(default=None, alias="version", description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.") + code_field: codeModel = Field(default=None, alias="code", description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).") + display_field: stringModel = Field(default=None, alias="display", description="A representation of the meaning of the code in the system, following the rules of the system.") + userSelected_field: booleanModel = Field(default=None, alias="userSelected", description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).") + + +class CodeableConceptModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + coding_field: List[CodingModel] = Field(default_factory=list, alias="coding", description="A reference to a code defined by a terminology system.") + text_field: stringModel = Field(default=None, alias="text", description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.") + + +class ReferenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + reference_field: stringModel = Field(default=None, alias="reference", description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.") + type_field: uriModel = Field(default=None, alias="type", description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.") + identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.") + display_field: stringModel = Field(default=None, alias="display", description="Plain text narrative that identifies the resource in addition to the resource reference.") diff --git a/healthchain/fhir_resources/patient_resources.py b/healthchain/fhir_resources/patient_resources.py new file mode 100644 index 0000000..580dd5e --- /dev/null +++ b/healthchain/fhir_resources/patient_resources.py @@ -0,0 +1,97 @@ +from pydantic import Field, BaseModel +from typing import List +from healthchain.fhir_resources.base_resources import BaseModel, idModel, uriModel, codeModel, booleanModel, IdentifierModel, ReferenceModel, stringModel, ExtensionModel, PeriodModel, positiveIntModel, CodeableConceptModel, dateModel + + +class AddressModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Address_use_field: useModel = Field(..., alias="use", description="The purpose of this address.") + # Address_type_field: typeModel = Field(..., alias="type", description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.") + text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.") + line_field: List[stringModel] = Field(default_factory=list, alias="line", description="This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.") + city_field: stringModel = Field(default=None, alias="city", description="The name of the city, town, suburb, village or other community or delivery center.") + district_field: stringModel = Field(default=None, alias="district", description="The name of the administrative area (county).") + state_field: stringModel = Field(default=None, alias="state", description="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).") + postalCode_field: stringModel = Field(default=None, alias="postalCode", description="A postal code designating a region defined by the postal service.") + country_field: stringModel = Field(default=None, alias="country", description="Country - a nation as commonly understood or generally accepted.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period when address was/is in use.") + + +class ContactPointModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # ContactPoint_system_field: systemModel = Field(..., alias="system", description="Telecommunications form for contact point - what communications system is required to make use of the contact.") + value_field: stringModel = Field(default=None, alias="value", description="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).") + # ContactPoint_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for the contact point.") + rank_field: positiveIntModel = Field(default=None, alias="rank", description="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period when the contact point was/is in use.") + + + +class HumanNameModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # HumanName_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for this name.") + text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.") + family_field: stringModel = Field(default=None, alias="family", description="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.") + given_field: List[stringModel] = Field(default_factory=list, alias="given", description="Given name.") + prefix_field: List[stringModel] = Field(default_factory=list, alias="prefix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.") + suffix_field: List[stringModel] = Field(default_factory=list, alias="suffix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.") + period_field: PeriodModel = Field(default=None, alias="period", description="Indicates the period of time when this name was valid for the named person.") + + +class Patient_LinkModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + other_field: ReferenceModel = Field(default=None, alias="other", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") + type_field: codeModel = Field(default=None, alias="type", description="The type of link between this patient resource and another patient resource.") + + +class Patient_ContactModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + relationship_field: List[CodeableConceptModel] = Field(default_factory=list, alias="relationship", description="The nature of the relationship between the patient and the contact person.") + name_field: HumanNameModel = Field(default=None, alias="name", description="A name associated with the contact person.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") + address_field: AddressModel = Field(default=None, alias="address", description="Address for the contact person.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.") + organization_field: ReferenceModel = Field(default=None, alias="organization", description="Organization on behalf of which the contact is acting or for which the contact is working.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period during which this contact person or organization is valid to be contacted relating to this patient.") + + +class Patient_CommunicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).") + + +class PatientModel(BaseModel): + resourceType: str = "Patient" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + # NOTE: The text field has been switched to stringModel rather than NarrativeField for simplicity. + text_field: stringModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier for this patient.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this patient record is in active use. ") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the individual.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.") + birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the individual.") + address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="An address for the individual.") + maritalStatus_field: CodeableConceptModel = Field(default=None, alias="maritalStatus", description="This field contains a patient's most recent marital (civil) status.") + # photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the patient.") + contact_field: List[Patient_ContactModel] = Field(default_factory=list, alias="contact", description="A contact party (e.g. guardian, partner, friend) for the patient.") + communication_field: List[Patient_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the patient about his or her health.") + generalPractitioner_field: List[ReferenceModel] = Field(default_factory=list, alias="generalPractitioner", description="Patient's nominated care provider.") + managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="Organization that is the custodian of the patient record.") + link_field: List[Patient_LinkModel] = Field(default_factory=list, alias="link", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") diff --git a/healthchain/fhir_resources/resource_registry.py b/healthchain/fhir_resources/resource_registry.py new file mode 100644 index 0000000..9e69cf5 --- /dev/null +++ b/healthchain/fhir_resources/resource_registry.py @@ -0,0 +1,165 @@ +from typing import Enum + +class ImplementedResourceRegistry(Enum): + pass + + +class UnimplementedResourceRegistry(Enum): + Account: str = "Account" + ActivityDefinition: str = "ActivityDefinition" + ActorDefinition: str = "ActorDefinition" + AdministrableProductDefinition: str = "AdministrableProductDefinition" + AdverseEvent: str = "AdverseEvent" + AllergyIntolerance: str = "AllergyIntolerance" + Appointment: str = "Appointment" + AppointmentResponse: str = "AppointmentResponse" + ArtifactAssessment: str = "ArtifactAssessment" + AuditEvent: str = "AuditEvent" + Basic: str = "Basic" + Binary: str = "Binary" + BiologicallyDerivedProduct: str = "BiologicallyDerivedProduct" + BiologicallyDerivedProductDispense: str = "BiologicallyDerivedProductDispense" + BodyStructure: str = "BodyStructure" + Bundle: str = "Bundle" + CapabilityStatement: str = "CapabilityStatement" + CarePlan: str = "CarePlan" + CareTeam: str = "CareTeam" + ChargeItem: str = "ChargeItem" + ChargeItemDefinition: str = "ChargeItemDefinition" + Citation: str = "Citation" + Claim: str = "Claim" + ClaimResponse: str = "ClaimResponse" + ClinicalImpression: str = "ClinicalImpression" + ClinicalUseDefinition: str = "ClinicalUseDefinition" + CodeSystem: str = "CodeSystem" + Communication: str = "Communication" + CommunicationRequest: str = "CommunicationRequest" + CompartmentDefinition: str = "CompartmentDefinition" + Composition: str = "Composition" + ConceptMap: str = "ConceptMap" + Condition: str = "Condition" + ConditionDefinition: str = "ConditionDefinition" + Consent: str = "Consent" + Contract: str = "Contract" + Coverage: str = "Coverage" + CoverageEligibilityRequest: str = "CoverageEligibilityRequest" + CoverageEligibilityResponse: str = "CoverageEligibilityResponse" + DetectedIssue: str = "DetectedIssue" + Device: str = "Device" + DeviceAssociation: str = "DeviceAssociation" + DeviceDefinition: str = "DeviceDefinition" + DeviceDispense: str = "DeviceDispense" + DeviceMetric: str = "DeviceMetric" + DeviceRequest: str = "DeviceRequest" + DeviceUsage: str = "DeviceUsage" + DiagnosticReport: str = "DiagnosticReport" + DocumentReference: str = "DocumentReference" + Encounter: str = "Encounter" + EncounterHistory: str = "EncounterHistory" + Endpoint: str = "Endpoint" + EnrollmentRequest: str = "EnrollmentRequest" + EnrollmentResponse: str = "EnrollmentResponse" + EpisodeOfCare: str = "EpisodeOfCare" + EventDefinition: str = "EventDefinition" + Evidence: str = "Evidence" + EvidenceReport: str = "EvidenceReport" + EvidenceVariable: str = "EvidenceVariable" + ExampleScenario: str = "ExampleScenario" + ExplanationOfBenefit: str = "ExplanationOfBenefit" + FamilyMemberHistory: str = "FamilyMemberHistory" + Flag: str = "Flag" + FormularyItem: str = "FormularyItem" + GenomicStudy: str = "GenomicStudy" + Goal: str = "Goal" + GraphDefinition: str = "GraphDefinition" + Group: str = "Group" + GuidanceResponse: str = "GuidanceResponse" + HealthcareService: str = "HealthcareService" + ImagingSelection: str = "ImagingSelection" + ImagingStudy: str = "ImagingStudy" + Immunization: str = "Immunization" + ImmunizationEvaluation: str = "ImmunizationEvaluation" + ImmunizationRecommendation: str = "ImmunizationRecommendation" + ImplementationGuide: str = "ImplementationGuide" + Ingredient: str = "Ingredient" + InsurancePlan: str = "InsurancePlan" + InventoryItem: str = "InventoryItem" + InventoryReport: str = "InventoryReport" + Invoice: str = "Invoice" + Library: str = "Library" + Linkage: str = "Linkage" + List: str = "List" + Location: str = "Location" + ManufacturedItemDefinition: str = "ManufacturedItemDefinition" + Measure: str = "Measure" + MeasureReport: str = "MeasureReport" + Medication: str = "Medication" + MedicationAdministration: str = "MedicationAdministration" + MedicationDispense: str = "MedicationDispense" + MedicationKnowledge: str = "MedicationKnowledge" + MedicationRequest: str = "MedicationRequest" + MedicationStatement: str = "MedicationStatement" + MedicinalProductDefinition: str = "MedicinalProductDefinition" + MessageDefinition: str = "MessageDefinition" + MessageHeader: str = "MessageHeader" + MolecularSequence: str = "MolecularSequence" + NamingSystem: str = "NamingSystem" + NutritionIntake: str = "NutritionIntake" + NutritionOrder: str = "NutritionOrder" + NutritionProduct: str = "NutritionProduct" + Observation: str = "Observation" + ObservationDefinition: str = "ObservationDefinition" + OperationDefinition: str = "OperationDefinition" + OperationOutcome: str = "OperationOutcome" + Organization: str = "Organization" + OrganizationAffiliation: str = "OrganizationAffiliation" + PackagedProductDefinition: str = "PackagedProductDefinition" + Parameters: str = "Parameters" + Patient: str = "Patient" + PaymentNotice: str = "PaymentNotice" + PaymentReconciliation: str = "PaymentReconciliation" + Permission: str = "Permission" + Person: str = "Person" + PlanDefinition: str = "PlanDefinition" + Practitioner: str = "Practitioner" + PractitionerRole: str = "PractitionerRole" + Procedure: str = "Procedure" + Provenance: str = "Provenance" + Questionnaire: str = "Questionnaire" + QuestionnaireResponse: str = "QuestionnaireResponse" + RegulatedAuthorization: str = "RegulatedAuthorization" + RelatedPerson: str = "RelatedPerson" + RequestOrchestration: str = "RequestOrchestration" + Requirements: str = "Requirements" + ResearchStudy: str = "ResearchStudy" + ResearchSubject: str = "ResearchSubject" + RiskAssessment: str = "RiskAssessment" + Schedule: str = "Schedule" + SearchParameter: str = "SearchParameter" + ServiceRequest: str = "ServiceRequest" + Slot: str = "Slot" + Specimen: str = "Specimen" + SpecimenDefinition: str = "SpecimenDefinition" + StructureDefinition: str = "StructureDefinition" + StructureMap: str = "StructureMap" + Subscription: str = "Subscription" + SubscriptionStatus: str = "SubscriptionStatus" + SubscriptionTopic: str = "SubscriptionTopic" + Substance: str = "Substance" + SubstanceDefinition: str = "SubstanceDefinition" + SubstanceNucleicAcid: str = "SubstanceNucleicAcid" + SubstancePolymer: str = "SubstancePolymer" + SubstanceProtein: str = "SubstanceProtein" + SubstanceReferenceInformation: str = "SubstanceReferenceInformation" + SubstanceSourceMaterial: str = "SubstanceSourceMaterial" + SupplyDelivery: str = "SupplyDelivery" + SupplyRequest: str = "SupplyRequest" + Task: str = "Task" + TerminologyCapabilities: str = "TerminologyCapabilities" + TestPlan: str = "TestPlan" + TestReport: str = "TestReport" + TestScript: str = "TestScript" + Transport: str = "Transport" + ValueSet: str = "ValueSet" + VerificationResult: str = "VerificationResult" + VisionPrescription: str = "VisionPrescription" From 5315735fd92bed563a730805dfe2956598cbf417 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Sat, 4 May 2024 08:46:24 +0100 Subject: [PATCH 07/24] commiting data generator --- healthchain/data_generator/patient_generator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index 90ffdaf..d020332 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -1,6 +1,6 @@ -from src.data_generator.base_generators import BaseGenerator, generator_registry, register_generator -from src.pydantic_models import PatientModel, HumanNameModel, ContactPointModel, AddressModel, PeriodModel, CodeableConceptModel,\ -stringModel, CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel +from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator +from healthchain.fhir_resources.base_resources import PeriodModel, CodeableConceptModel, stringModel, CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel +from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel from faker import Faker import random From 16aaad879d0de4cdeb5c314be8bfa73935908a47 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Wed, 8 May 2024 12:32:34 +0100 Subject: [PATCH 08/24] added practitioner --- healthchain/data_generator/base_generators.py | 2 +- .../data_generator/patient_generator.py | 8 +-- .../data_generator/practitioner_generator.py | 51 +++++++++++++++++++ healthchain/fhir_resources/base_resources.py | 3 +- .../fhir_resources/patient_resources.py | 11 ++-- .../fhir_resources/practitioner_resources.py | 44 ++++++++++++++++ .../fhir_resources/resource_registry.py | 5 +- 7 files changed, 109 insertions(+), 15 deletions(-) create mode 100644 healthchain/data_generator/practitioner_generator.py create mode 100644 healthchain/fhir_resources/practitioner_resources.py diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index e040305..ce97e9e 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -137,4 +137,4 @@ def generate(): class uuidGenerator(BaseGenerator): @staticmethod def generate(): - return uuidModel(uuid=faker.uuid4()) \ No newline at end of file + return uuidModel(uuid=faker.uuid4()) diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index d020332..d268201 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -25,9 +25,9 @@ class ContactPointGenerator(BaseGenerator): @staticmethod def generate(): return ContactPointModel( - system=faker.random_element(elements=('phone', 'fax', 'email', 'pager', 'url', 'sms', 'other')), + system=codeModel(code=faker.random_element(elements=('phone', 'fax', 'email', 'pager', 'url', 'sms', 'other'))), value=stringModel(string=faker.phone_number()), - use=faker.random_element(elements=('home', 'work', 'temp', 'old', 'mobile')), + use=codeModel(code=faker.random_element(elements=('home', 'work'))), rank=positiveIntModel(positiveInt=random.randint(1, 10)), period=generator_registry.get('PeriodGenerator').generate(), ) @@ -37,8 +37,8 @@ class AddressGenerator(BaseGenerator): @staticmethod def generate(): return AddressModel( - use=faker.random_element(elements=('home', 'work', 'temp', 'old')), - type=faker.random_element(elements=('postal', 'physical', 'both')), + use=codeModel(code=faker.random_element(elements=('home', 'work', 'temp', 'old'))), + type=codeModel(code=faker.random_element(elements=('postal', 'physical', 'both'))), text=stringModel(string=faker.address()), line=[stringModel(string=faker.street_address())], city=stringModel(string=faker.city()), diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py new file mode 100644 index 0000000..ad8a61a --- /dev/null +++ b/healthchain/data_generator/practitioner_generator.py @@ -0,0 +1,51 @@ +from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator +from healthchain.data_generator.patient_generator import PeriodGenerator, ContactPointGenerator, AddressGenerator +from healthchain.fhir_resources.base_resources import PeriodModel, booleanModel, CodeableConceptModel, stringModel, CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel +from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel +from healthchain.fhir_resources.practitioner_resources import PractitionerModel, Practitioner_QualificationModel, Practitioner_CommunicationModel +from faker import Faker + + +import random + +faker = Faker() + +@register_generator +class Practitioner_QualificationGenerator(BaseGenerator): + qualification_value_set = [ + "PN", "AAS", "AA", "ABA", "AE", "AS", "BA", "BBA", "BE", "BFA", "BN", "BS", + "BSL", "BSN", "BT", "CER", "CANP", "CMA", "CNP", "CNM", "CRN", "CNS", "CPNP", + "CTR", "DIP", "DBA", "DED", "PharmD", "PHE", "PHD", "PHS", "MD", "DO", "EMT", + "EMTP", "FPNP", "HS", "JD", "MA", "MBA", "MCE", "MDI", "MED", "MEE", "ME", + "MFA", "MME", "MS", "MSL", "MSN", "MTH", "MDA", "MT", "NG", "NP", "PA", "RMA", + "RN", "RPH", "SEC", "TS"] + + + @staticmethod + def generate(): + return Practitioner_QualificationModel( + id=stringModel(string=faker.uuid4()), + identifier=[generator_registry.get('IdentifierGenerator').generate()], + code=codeModel(code=faker.random_element(elements=Practitioner_QualificationGenerator.qualification_value_set)), + # TODO: Modify period generator to have flexibility to set to present date + period=generator_registry.get('PeriodGenerator').generate(), + # issuer=generator_registry.get('ReferenceGenerator').generate(), + ) + + +@register_generator +class PractitionerGenerator(BaseGenerator): + @staticmethod + def generate(): + return PractitionerModel( + id=stringModel(string=faker.uuid4()), + identifier=[generator_registry.get('IdentifierGenerator').generate()], + active=booleanModel(boolean=random.choice(['true', 'false'])), + name=[generator_registry.get('HumanNameGenerator').generate()], + telecom=[generator_registry.get('ContactPointGenerator').generate()], + gender=codeModel(code=faker.random_element(elements=('male', 'female', 'other', 'unknown'))), + address=[generator_registry.get('AddressGenerator').generate()], + qualification=[generator_registry.get('Practitioner_QualificationGenerator').generate()], + communication=[generator_registry.get('Practitioner_CommunicationGenerator').generate()], + + ) \ No newline at end of file diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py index d872110..7b79b99 100644 --- a/healthchain/fhir_resources/base_resources.py +++ b/healthchain/fhir_resources/base_resources.py @@ -175,7 +175,8 @@ class Config: "description": "A UUID, represented as a URI" } - + +# TODO: Rename to primitives and move the models below to a separate file called General-purpose data types class ExtensionModel(BaseModel): id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") diff --git a/healthchain/fhir_resources/patient_resources.py b/healthchain/fhir_resources/patient_resources.py index 580dd5e..03a8eaf 100644 --- a/healthchain/fhir_resources/patient_resources.py +++ b/healthchain/fhir_resources/patient_resources.py @@ -6,8 +6,8 @@ class AddressModel(BaseModel): id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # Address_use_field: useModel = Field(..., alias="use", description="The purpose of this address.") - # Address_type_field: typeModel = Field(..., alias="type", description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.") + use_field: codeModel = Field(default=None, alias="use", description="The purpose of this address.") + type_field: codeModel = Field(default=None, alias="type", description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.") text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.") line_field: List[stringModel] = Field(default_factory=list, alias="line", description="This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.") city_field: stringModel = Field(default=None, alias="city", description="The name of the city, town, suburb, village or other community or delivery center.") @@ -21,18 +21,17 @@ class AddressModel(BaseModel): class ContactPointModel(BaseModel): id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # ContactPoint_system_field: systemModel = Field(..., alias="system", description="Telecommunications form for contact point - what communications system is required to make use of the contact.") + system_field: codeModel = Field(default=None, alias="system", description="Telecommunications form for contact point - what communications system is required to make use of the contact.") value_field: stringModel = Field(default=None, alias="value", description="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).") - # ContactPoint_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for the contact point.") + use_field: codeModel = Field(default=None, alias="use", description="Identifies the purpose for the contact point.") rank_field: positiveIntModel = Field(default=None, alias="rank", description="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.") period_field: PeriodModel = Field(default=None, alias="period", description="Time period when the contact point was/is in use.") - class HumanNameModel(BaseModel): id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - # HumanName_use_field: useModel = Field(..., alias="use", description="Identifies the purpose for this name.") + use_field: codeModel = Field(default=None, alias="use", description="Identifies the purpose for this name.") text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.") family_field: stringModel = Field(default=None, alias="family", description="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.") given_field: List[stringModel] = Field(default_factory=list, alias="given", description="Given name.") diff --git a/healthchain/fhir_resources/practitioner_resources.py b/healthchain/fhir_resources/practitioner_resources.py new file mode 100644 index 0000000..978ad46 --- /dev/null +++ b/healthchain/fhir_resources/practitioner_resources.py @@ -0,0 +1,44 @@ +from pydantic import Field, BaseModel +from typing import List +from healthchain.fhir_resources.base_resources import BaseModel, idModel, uriModel, codeModel, booleanModel, IdentifierModel, ReferenceModel, stringModel, ExtensionModel, PeriodModel, positiveIntModel, CodeableConceptModel, dateModel +from healthchain.fhir_resources.patient_resources import HumanNameModel, ContactPointModel, AddressModel, AttachmentModel + + +class Practitioner_QualificationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person's qualification.") + code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded representation of the qualification.") + period_field: PeriodModel = Field(default=None, alias="period", description="Period during which the qualification is valid.") + issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="Organization that regulates and issues the qualification.") + + +class Practitioner_CommunicationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") + preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).") + + +class PractitionerModel(BaseModel): + resourceType_field: str = "Practitioner" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: stringModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person in this role.") + active_field: booleanModel = Field(default=None, alias="active", description="Whether this practitioner's record is in active use.") + name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="The name(s) associated with the practitioner.") + telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the practitioner, e.g. a telephone number or an email address.") + gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.") + birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the practitioner.") + address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="Address(es) of the practitioner that are not role specific (typically home address). ") + # photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the person.") + qualification_field: List[Practitioner_QualificationModel] = Field(default_factory=list, alias="qualification", description="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.") + communication_field: List[Practitioner_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.") diff --git a/healthchain/fhir_resources/resource_registry.py b/healthchain/fhir_resources/resource_registry.py index 9e69cf5..8b382b8 100644 --- a/healthchain/fhir_resources/resource_registry.py +++ b/healthchain/fhir_resources/resource_registry.py @@ -1,7 +1,8 @@ from typing import Enum class ImplementedResourceRegistry(Enum): - pass + Patient: str = "Patient" + Practitioner: str = "Practitioner" class UnimplementedResourceRegistry(Enum): @@ -115,13 +116,11 @@ class UnimplementedResourceRegistry(Enum): OrganizationAffiliation: str = "OrganizationAffiliation" PackagedProductDefinition: str = "PackagedProductDefinition" Parameters: str = "Parameters" - Patient: str = "Patient" PaymentNotice: str = "PaymentNotice" PaymentReconciliation: str = "PaymentReconciliation" Permission: str = "Permission" Person: str = "Person" PlanDefinition: str = "PlanDefinition" - Practitioner: str = "Practitioner" PractitionerRole: str = "PractitionerRole" Procedure: str = "Procedure" Provenance: str = "Provenance" From 9cbe00f6ee6ca11ceb07f081cdc5abb13cddfa39 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Thu, 9 May 2024 20:21:24 +0100 Subject: [PATCH 09/24] refactor generators --- healthchain/data_generator/base_generators.py | 34 ++-- .../data_generator/patient_generator.py | 48 ++--- .../data_generator/practitioner_generator.py | 37 ++++ healthchain/fhir_resources/base_resources.py | 192 ++---------------- poetry.lock | 17 +- pyproject.toml | 1 + tests/test_pydantic_base_generators.py | 0 tests/test_pydantic_complex_field_models.py | 37 ---- tests/test_pydantic_patient_generators.py | 2 +- 9 files changed, 117 insertions(+), 251 deletions(-) delete mode 100644 tests/test_pydantic_base_generators.py delete mode 100644 tests/test_pydantic_complex_field_models.py diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index ce97e9e..0525108 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -24,14 +24,14 @@ def generate(): class booleanGenerator(BaseGenerator): @staticmethod def generate(): - return booleanModel(boolean=random.choice(['true', 'false'])) + return booleanModel(random.choice(['true', 'false'])) @register_generator class canonicalGenerator(BaseGenerator): @staticmethod def generate(): - return canonicalModel(canonical=f"https://example/{faker.uri_path()}") + return canonicalModel(f"https://example/{faker.uri_path()}") @register_generator @@ -39,102 +39,102 @@ class codeGenerator(BaseGenerator): # TODO: Codes can technically have whitespace but here I've left it out for simplicity @staticmethod def generate(): - return codeModel(code=''.join(random.choices(string.ascii_uppercase + string.digits, k=6))) + return codeModel(''.join(random.choices(string.ascii_uppercase + string.digits, k=6))) @register_generator class dateGenerator(BaseGenerator): @staticmethod def generate(): - return dateModel(date=faker.date()) + return dateModel(faker.date()) @register_generator class dateTimeGenerator(BaseGenerator): @staticmethod def generate(): - return dateTimeModel(dateTime=faker.date_time().isoformat()) + return dateTimeModel(faker.date_time().isoformat()) @register_generator class decimalGenerator(BaseGenerator): @staticmethod def generate(): - return decimalModel(decimal=faker.random_number()) + return decimalModel(faker.random_number()) @register_generator class idGenerator(BaseGenerator): @staticmethod def generate(): - return idModel(id=faker.uuid4()) + return idModel(faker.uuid4()) @register_generator class instantGenerator(BaseGenerator): @staticmethod def generate(): - return instantModel(instant=faker.date_time().isoformat()) + return instantModel(faker.date_time().isoformat()) @register_generator class integerGenerator(BaseGenerator): @staticmethod def generate(): - return integerModel(integer=faker.random_int()) + return integerModel(faker.random_int()) @register_generator class markdownGenerator(BaseGenerator): @staticmethod def generate(): - return markdownModel(markdown=faker.text()) + return markdownModel(faker.text()) @register_generator class positiveIntGenerator(BaseGenerator): @staticmethod def generate(): - return positiveIntModel(positiveInt=faker.random_int(min=1)) + return positiveIntModel(faker.random_int(min=1)) @register_generator class stringGenerator(BaseGenerator): @staticmethod def generate(): - return stringModel(string=faker.word()) + return stringModel(faker.word()) @register_generator class timeGenerator(BaseGenerator): @staticmethod def generate(): - return timeModel(time=faker.time()) + return timeModel(faker.time()) @register_generator class unsignedIntGenerator(BaseGenerator): @staticmethod def generate(): - return unsignedIntModel(unsignedInt=faker.random_int(min=0)) + return unsignedIntModel(faker.random_int(min=0)) @register_generator class uriGenerator(BaseGenerator): @staticmethod def generate(): - return uriModel(uri=f"https://example/{faker.uri_path()}") + return uriModel(f"https://example/{faker.uri_path()}") @register_generator class urlGenerator(BaseGenerator): @staticmethod def generate(): - return urlModel(url=f"https://example/{faker.uri_path()}") + return urlModel(f"https://example/{faker.uri_path()}") @register_generator class uuidGenerator(BaseGenerator): @staticmethod def generate(): - return uuidModel(uuid=faker.uuid4()) + return uuidModel(faker.uuid4()) diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index d268201..3b830ca 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -16,8 +16,8 @@ def generate(): end = faker.date_time_between(start_date=start).isoformat() start = start.isoformat() return PeriodModel( - start=dateTimeModel(dateTime=start), - end=dateTimeModel(dateTime=end), + start=dateTimeModel(start), + end=dateTimeModel(end), ) @register_generator @@ -25,10 +25,10 @@ class ContactPointGenerator(BaseGenerator): @staticmethod def generate(): return ContactPointModel( - system=codeModel(code=faker.random_element(elements=('phone', 'fax', 'email', 'pager', 'url', 'sms', 'other'))), - value=stringModel(string=faker.phone_number()), - use=codeModel(code=faker.random_element(elements=('home', 'work'))), - rank=positiveIntModel(positiveInt=random.randint(1, 10)), + system=codeModel(faker.random_element(elements=('phone', 'fax', 'email', 'pager', 'url', 'sms', 'other'))), + value=stringModel(faker.phone_number()), + use=codeModel(faker.random_element(elements=('home', 'work'))), + rank=positiveIntModel(random.randint(1, 10)), period=generator_registry.get('PeriodGenerator').generate(), ) @@ -37,15 +37,15 @@ class AddressGenerator(BaseGenerator): @staticmethod def generate(): return AddressModel( - use=codeModel(code=faker.random_element(elements=('home', 'work', 'temp', 'old'))), - type=codeModel(code=faker.random_element(elements=('postal', 'physical', 'both'))), - text=stringModel(string=faker.address()), - line=[stringModel(string=faker.street_address())], - city=stringModel(string=faker.city()), - district=stringModel(string=faker.state()), - state=stringModel(string=faker.state_abbr()), - postalCode=stringModel(string=faker.postcode()), - country=stringModel(string=faker.country_code()), + use=codeModel(faker.random_element(elements=('home', 'work', 'temp', 'old'))), + type=codeModel(faker.random_element(elements=('postal', 'physical', 'both'))), + text=stringModel(faker.address()), + line=[stringModel(faker.street_address())], + city=stringModel(faker.city()), + district=stringModel(faker.state()), + state=stringModel(faker.state_abbr()), + postalCode=stringModel(faker.postcode()), + country=stringModel(faker.country_code()), period=generator_registry.get('PeriodGenerator').generate(), ) @@ -61,11 +61,11 @@ def generate(): marital_code = faker.random_element(elements=(marital_status_dict.keys())) return CodeableConceptModel( coding=[CodingModel( - system=uriModel(uri='http://terminology.hl7.org/CodeSystem/v3-MaritalStatus'), - code=codeModel(code=marital_code), - display=stringModel(string=marital_status_dict.get(marital_code)), + system=uriModel('http://terminology.hl7.org/CodeSystem/v3-MaritalStatus'), + code=codeModel(marital_code), + display=stringModel(marital_status_dict.get(marital_code)), )], - text=stringModel(string=marital_status_dict.get(marital_code)), + text=stringModel(marital_status_dict.get(marital_code)), ) @register_generator @@ -73,10 +73,10 @@ class HumanNameGenerator(BaseGenerator): @staticmethod def generate(): return HumanNameModel( - family=stringModel(string=faker.last_name()), - given=[stringModel(string=faker.first_name())], - prefix=[stringModel(string=faker.prefix())], - suffix=[stringModel(string=faker.suffix())], + family=stringModel(faker.last_name()), + given=[stringModel(faker.first_name())], + prefix=[stringModel(faker.prefix())], + suffix=[stringModel(faker.suffix())], ) @register_generator @@ -89,7 +89,7 @@ def generate(): active=generator_registry.get('booleanGenerator').generate(), name=[generator_registry.get('HumanNameGenerator').generate()], telecom=[generator_registry.get('ContactPointGenerator').generate() for _ in range(1)], ## List of length 1 for simplicity - gender=codeModel(code=faker.random_element(elements=('male', 'female', 'other', 'unknown'))), + gender=codeModel(faker.random_element(elements=('male', 'female', 'other', 'unknown'))), birthDate=generator_registry.get('dateGenerator').generate(), address=[generator_registry.get('AddressGenerator').generate() for _ in range(1)], ## List of length 1 for simplicity maritalStatus=generator_registry.get('maritalStatusGenerator').generate() diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py index ad8a61a..0a3dd38 100644 --- a/healthchain/data_generator/practitioner_generator.py +++ b/healthchain/data_generator/practitioner_generator.py @@ -33,6 +33,43 @@ def generate(): ) + + +@register_generator +class LanguageGenerator(): + language_value_dict = {'en': 'English', + 'es': 'Spanish', + 'fr': 'French', + 'de': 'German', + 'it': 'Italian', + 'ja': 'Japanese', + 'ko': 'Korean', + 'zh': 'Chinese', + 'ru': 'Russian', + 'ar': 'Arabic'} + @staticmethod + def generate(): + language = faker.random_element(elements=LanguageGenerator.language_value_dict.keys()) + return CodeableConceptModel( + coding=[CodingModel( + system=uriModel(uri="http://terminology.hl7.org/CodeSystem/languages"), + code=codeModel(code=language), + display=stringModel(string=LanguageGenerator.language_value_dict.get(language)) + )], + text=stringModel(string=LanguageGenerator.language_value_dict.get(language)) + ) + +@register_generator +class Practitioner_CommunicationGenerator(BaseGenerator): + @staticmethod + def generate(): + return Practitioner_CommunicationModel( + id=stringModel(string=faker.uuid4()), + language=generator_registry.get('CodeableConceptGenerator').generate(), + preferred=booleanModel(boolean=random.choice(['true', 'false'])), + ) + + @register_generator class PractitionerGenerator(BaseGenerator): @staticmethod diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py index 7b79b99..09f1c6c 100644 --- a/healthchain/fhir_resources/base_resources.py +++ b/healthchain/fhir_resources/base_resources.py @@ -4,176 +4,28 @@ from pydantic import BaseModel, Field, conint from typing_extensions import Annotated from typing import List - -class booleanModel(BaseModel): - boolean: str = Field(pattern=r'^true|false$') - - class Config: - schema_extra = { - "description": "Value of true or false" - } - - -class canonicalModel(BaseModel): - canonical: str = Field(pattern=r'^\S*$') - - class Config: - schema_extra = { - "description": "A URI that is a reference to a canonical URL on a FHIR resource" - } - - -class codeModel(BaseModel): - code: str = Field(pattern=r'^[^\s]+( [^\s]+)*$') - - class Config: - schema_extra = { - "description": "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents" - } - - -class dateModel(BaseModel): - date: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$') - - class Config: - schema_extra = { - "description": "A date or partial date (e.g. just year or year + month). There is no UTC offset. The format is a union of the schema types gYear, gYearMonth and date. Dates SHALL be valid dates." - } - - -class dateTimeModel(BaseModel): - dateTime: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$') - - class Config: - schema_extra = { - "description": "A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a UTC offset SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates." - } - - -class decimalModel(BaseModel): - decimal: float = Field(pattern=r'^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$') - - class Config: - schema_extra = { - "description": "A rational number with implicit precision" - } - - -class idModel(BaseModel): - id: str = Field(pattern=r'^[A-Za-z0-9\-\.]{1,64}$') - - class Config: - schema_extra = { - "description": "Any combination of letters, numerals, - and ., with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive." - } - - -class instantModel(BaseModel): - instant: str = Field(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$') - - class Config: - schema_extra = { - "description": "An instant in time - known at least to the second" - } - - -class integerModel(BaseModel): - integer: float = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') - - class Config: - schema_extra = { - "description": "A whole number" - } - - -class integer64Model(BaseModel): - integer64: str = Field(pattern=r'^[0]|[-+]?[1-9][0-9]*$') - - class Config: - schema_extra = { - "description": "A very large whole number" - } - - -class markdownModel(BaseModel): - markdown: str = Field(pattern=r'^^[\s\S]+$$') - - class Config: - schema_extra = { - "description": "A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine" - } - - -class oidModel(BaseModel): - oid: str = Field(pattern=r'^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$') - - class Config: - schema_extra = { - "description": "An OID represented as a URI" - } - - -class positiveIntModel(BaseModel): - positiveInt: Annotated[int, Field(strict=True, gt=0)] - - class Config: - schema_extra = { - "description": "An integer with a value that is positive (e.g. >0)" - } - - -class stringModel(BaseModel): - string: str = Field(pattern=r'^^[\s\S]+$$') - - class Config: - schema_extra = { - "description": "A sequence of Unicode characters" - } - - -class timeModel(BaseModel): - time: str = Field(pattern=r'^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$') - - class Config: - schema_extra = { - "description": "A time during the day, with no date specified" - } - - -class unsignedIntModel(BaseModel): - unsignedInt: float = Field(pattern=r'^[0]|([1-9][0-9]*)$') - - class Config: - schema_extra = { - "description": "An integer with a value that is not negative (e.g. >= 0)" - } - - -class uriModel(BaseModel): - uri: str = Field(pattern=r'^\S*$') - - class Config: - schema_extra = { - "description": "String of characters used to identify a name or a resource" - } - - -class urlModel(BaseModel): - url: str = Field(pattern=r'^\S*$') - - class Config: - schema_extra = { - "description": "A URI that is a literal reference" - } - - -class uuidModel(BaseModel): - uuid: str = Field(pattern=r'^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') - - class Config: - schema_extra = { - "description": "A UUID, represented as a URI" - } +from pydantic import constr, confloat + + +booleanModel = constr(pattern=r"^(true|false)$") +canonicalModel = constr(pattern=r'^\S*$') +codeModel = constr(pattern=r'^[^\s]+( [^\s]+)*$') +dateModel = constr(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$') +dateTimeModel = constr(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$') +decimalModel = constr(pattern=r'^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$') +idModel = constr(pattern=r'^[A-Za-z0-9\-\.]{1,64}$') +instantModel = constr(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$') +integerModel = constr(pattern=r'^[0]|[-+]?[1-9][0-9]*$') +integer64Model = constr(pattern=r'^[0]|[-+]?[1-9][0-9]*$') +markdownModel = constr(pattern=r'^^[\s\S]+$$') +oidModel = constr(pattern=r'^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$') +positiveIntModel = conint(strict=True, gt=0) +stringModel = constr(pattern=r'^^[\s\S]+$$') +timeModel = constr(pattern=r'^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$') +unsignedIntModel = constr(pattern=r'^[0]|([1-9][0-9]*)$') +uriModel = constr(pattern=r'^\S*$') +urlModel = constr(pattern=r'^\S*$') +uuidModel = constr(pattern=r'^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') # TODO: Rename to primitives and move the models below to a separate file called General-purpose data types diff --git a/poetry.lock b/poetry.lock index 594f5f8..a546e43 100644 --- a/poetry.lock +++ b/poetry.lock @@ -168,6 +168,20 @@ files = [ {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] +[[package]] +name = "faker" +version = "25.1.0" +description = "Faker is a Python package that generates fake data for you." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Faker-25.1.0-py3-none-any.whl", hash = "sha256:24e28dce0b89683bb9e017e042b971c8c4909cff551b6d46f1e207674c7c2526"}, + {file = "Faker-25.1.0.tar.gz", hash = "sha256:2107618cf306bb188dcfea3e5cfd94aa92d65c7293a2437c1e96a99c83274755"}, +] + +[package.dependencies] +python-dateutil = ">=2.4" + [[package]] name = "filelock" version = "3.14.0" @@ -648,7 +662,6 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -863,4 +876,4 @@ watchmedo = ["PyYAML (>=3.10)"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "0b425e65b14697aadd7680ae01bef0d2dbc1c3bf307681b1f8ef41f34d84d817" +content-hash = "0a2fabc4c57cf64866586ff41e3da1ed2062a24018d8843717f6defe286cb721" diff --git a/pyproject.toml b/pyproject.toml index f80a963..ae76b34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,7 @@ mkdocs = "^1.5.3" pydantic = "^2.7.1" requests = "^2.31.0" colorama = "^0.4.6" +faker = "^25.1.0" [tool.poetry.group.dev.dependencies] ruff = "^0.4.2" diff --git a/tests/test_pydantic_base_generators.py b/tests/test_pydantic_base_generators.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_pydantic_complex_field_models.py b/tests/test_pydantic_complex_field_models.py deleted file mode 100644 index 1246e77..0000000 --- a/tests/test_pydantic_complex_field_models.py +++ /dev/null @@ -1,37 +0,0 @@ -from pydantic import ValidationError -import pytest -from src.pydantic_models import booleanModel, canonicalModel, codeModel - -def test_boolean_valid(): - data = {"boolean": "true"} - result = booleanModel(**data) - assert result.boolean == "true" - -def test_boolean_invalid(): - data = {"boolean": "invalid"} - with pytest.raises(ValidationError): - booleanModel(**data) - -def test_canonical_valid(): - data = {"canonical": "https://example.com"} - result = canonicalModel(**data) - assert result.canonical == "https://example.com" - -def test_canonical_invalid(): - data = {"canonical": "invalid url"} - with pytest.raises(ValidationError): - canonicalModel(**data) - -def test_code_valid(): - data = {"code": "ABC123"} - result = codeModel(**data) - assert result.code == "ABC123" - -def test_code_invalid(): - data = {"code": "invalid code"} - with pytest.raises(ValidationError): - codeModel(**data) - -# Run the tests -if __name__ == "__main__": - pytest.main() \ No newline at end of file diff --git a/tests/test_pydantic_patient_generators.py b/tests/test_pydantic_patient_generators.py index 71d6331..fd4a7af 100644 --- a/tests/test_pydantic_patient_generators.py +++ b/tests/test_pydantic_patient_generators.py @@ -1,4 +1,4 @@ -from src.data_generator.patient_generator import PatientGenerator, HumanNameGenerator +from healthchain.data_generator.patient_generator import PatientGenerator, HumanNameGenerator def test_human_name_generator(): From 25efdba7a634e6d94dcd07f1be8b0ffd744236a0 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Thu, 9 May 2024 20:21:57 +0100 Subject: [PATCH 10/24] add resource tests --- .../generator_templates/templates.py | 0 .../test_fhir_resources_base.py | 48 +++++++++++++ .../test_fhir_resources_patient.py | 67 +++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 healthchain/data_generator/generator_templates/templates.py create mode 100644 tests/fhir_resources_unit_tests/test_fhir_resources_base.py create mode 100644 tests/fhir_resources_unit_tests/test_fhir_resources_patient.py diff --git a/healthchain/data_generator/generator_templates/templates.py b/healthchain/data_generator/generator_templates/templates.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py new file mode 100644 index 0000000..7d8e242 --- /dev/null +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py @@ -0,0 +1,48 @@ +from pydantic import ValidationError +import pytest +from pydantic import BaseModel +from healthchain.fhir_resources.base_resources import booleanModel, canonicalModel, codeModel + + +class booleanTestModel(BaseModel): + my_bool: booleanModel + +def test_boolean_valid(): + data = {"my_bool": "true"} + result = booleanTestModel(**data) + assert result.my_bool == "true" + +def test_boolean_invalid(): + data = {"my_bool": "invalid"} + with pytest.raises(ValidationError): + booleanTestModel(**data) + +class canonicalTestModel(BaseModel): + my_canonical: canonicalModel + +def test_canonical_valid(): + data = {"my_canonical": "https://example.com"} + result = canonicalTestModel(**data) + assert result.my_canonical == "https://example.com" + +def test_canonical_invalid(): + data = {"my_canonical": "invalid url"} + with pytest.raises(ValidationError): + canonicalTestModel(**data) + +class codeTestModel(BaseModel): + my_code: codeModel + +def test_code_valid(): + data = {"my_code": "ABC123"} + result = codeTestModel(**data) + assert result.my_code == "ABC123" + +def test_code_invalid(): + data = {"my_code": "invalid code"} + with pytest.raises(ValidationError): + codeTestModel(**data) + +# Run the tests +if __name__ == "__main__": + pytest.main() \ No newline at end of file diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py b/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py new file mode 100644 index 0000000..6c284c6 --- /dev/null +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py @@ -0,0 +1,67 @@ +import pytest +from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel + +def test_PatientModel(): + data = { + "resourceType": "Patient", + "name": [ + { + "family": "Doe", + "given": ["John"], + "prefix": ["Mr."] + } + ], + "birthDate": "1980-01-01", + "gender": "Male" + } + patient = PatientModel(**data) + patient = patient.model_dump(by_alias=True) + assert patient['resourceType'] == "Patient" + assert patient['name'][0]['given'] == ["John"] + + +def test_HumanNameModel(): + data = { + "family": "Doe", + "given": ["John"], + "prefix": ["Mr."] + } + name = HumanNameModel(**data) + name = name.model_dump(by_alias=True) + assert name['family'] == "Doe" + assert name['given'] == ["John"] + + +def test_ContactPointModel(): + data = { + "system": "phone", + "value": "1234567890", + "use": "home" + } + contact = ContactPointModel(**data) + contact = contact.model_dump(by_alias=True) + assert contact['system'] == "phone" + assert contact['value'] == "1234567890" + + +def test_AddressModel(): + data = { + "use": "home", + "type": "postal", + "text": "123 Main St", + "line": ["Apt 1"], + "city": "Anytown", + "district": "Any County", + "state": "NY", + "postalCode": "12345", + "country": "US" + } + address = AddressModel(**data) + address = address.model_dump(by_alias=True) + assert address['use'] == "home" + assert address['line'] == ["Apt 1"] + assert address['city'] == "Anytown" + assert address['state'] == "NY" + assert address['postalCode'] == "12345" + assert address['country'] == "US" + From 2b65a91ac8a0e680225c862d7860f8fc84bbc395 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Sat, 11 May 2024 08:08:49 +0100 Subject: [PATCH 11/24] modified tests --- .../generator_templates/templates.py | 11 ++++ .../data_generator/practitioner_generator.py | 59 ++++++++++++------- .../fhir_resources/practitioner_resources.py | 6 +- .../test_fhir_resources_patient.py | 32 ++++++++++ tests/test_pydantic_patient_generators.py | 27 --------- 5 files changed, 83 insertions(+), 52 deletions(-) delete mode 100644 tests/test_pydantic_patient_generators.py diff --git a/healthchain/data_generator/generator_templates/templates.py b/healthchain/data_generator/generator_templates/templates.py index e69de29..e447fd3 100644 --- a/healthchain/data_generator/generator_templates/templates.py +++ b/healthchain/data_generator/generator_templates/templates.py @@ -0,0 +1,11 @@ +from pydantic import Field, BaseModel + +class patient_template_1(BaseModel): + name: list = [ + { + "family": "Doe", + "given": ["John"], + "prefix": ["Mr."] + } + ] + birthDate: str = "1999-01-01" \ No newline at end of file diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py index 0a3dd38..5946834 100644 --- a/healthchain/data_generator/practitioner_generator.py +++ b/healthchain/data_generator/practitioner_generator.py @@ -10,28 +10,44 @@ faker = Faker() + +@register_generator +class QualificationGenerator(BaseGenerator): + # TODO: Update with realistic qualifications + qualification_dict = { + '12345': 'Qualification 1', + '67890': 'Qualification 2', + '54321': 'Qualification 3', + '09876': 'Qualification 4', + '65432': 'Qualification 5', + } + @staticmethod + def generate(): + random_qual = faker.random_element(elements=QualificationGenerator.qualification_dict.keys()) + return CodeableConceptModel( + coding=[CodingModel( + system=uriModel("http://example.org"), + code=codeModel(random_qual), + display=stringModel(QualificationGenerator.qualification_dict.get(random_qual)) + )], + text=stringModel(QualificationGenerator.qualification_dict.get(random_qual)) + ) + @register_generator class Practitioner_QualificationGenerator(BaseGenerator): - qualification_value_set = [ - "PN", "AAS", "AA", "ABA", "AE", "AS", "BA", "BBA", "BE", "BFA", "BN", "BS", - "BSL", "BSN", "BT", "CER", "CANP", "CMA", "CNP", "CNM", "CRN", "CNS", "CPNP", - "CTR", "DIP", "DBA", "DED", "PharmD", "PHE", "PHD", "PHS", "MD", "DO", "EMT", - "EMTP", "FPNP", "HS", "JD", "MA", "MBA", "MCE", "MDI", "MED", "MEE", "ME", - "MFA", "MME", "MS", "MSL", "MSN", "MTH", "MDA", "MT", "NG", "NP", "PA", "RMA", - "RN", "RPH", "SEC", "TS"] + # TODO: Refactor the value set to live with the resources + @staticmethod def generate(): return Practitioner_QualificationModel( - id=stringModel(string=faker.uuid4()), - identifier=[generator_registry.get('IdentifierGenerator').generate()], - code=codeModel(code=faker.random_element(elements=Practitioner_QualificationGenerator.qualification_value_set)), + id=stringModel(faker.uuid4()), + code=generator_registry.get('QualificationGenerator').generate(), # TODO: Modify period generator to have flexibility to set to present date period=generator_registry.get('PeriodGenerator').generate(), # issuer=generator_registry.get('ReferenceGenerator').generate(), ) - @@ -52,11 +68,11 @@ def generate(): language = faker.random_element(elements=LanguageGenerator.language_value_dict.keys()) return CodeableConceptModel( coding=[CodingModel( - system=uriModel(uri="http://terminology.hl7.org/CodeSystem/languages"), - code=codeModel(code=language), - display=stringModel(string=LanguageGenerator.language_value_dict.get(language)) + system=uriModel("http://terminology.hl7.org/CodeSystem/languages"), + code=codeModel(language), + display=stringModel(LanguageGenerator.language_value_dict.get(language)) )], - text=stringModel(string=LanguageGenerator.language_value_dict.get(language)) + text=stringModel(LanguageGenerator.language_value_dict.get(language)) ) @register_generator @@ -64,9 +80,9 @@ class Practitioner_CommunicationGenerator(BaseGenerator): @staticmethod def generate(): return Practitioner_CommunicationModel( - id=stringModel(string=faker.uuid4()), - language=generator_registry.get('CodeableConceptGenerator').generate(), - preferred=booleanModel(boolean=random.choice(['true', 'false'])), + id=stringModel(faker.uuid4()), + language=generator_registry.get('LanguageGenerator').generate(), + preferred=booleanModel(random.choice(['true', 'false'])), ) @@ -75,12 +91,11 @@ class PractitionerGenerator(BaseGenerator): @staticmethod def generate(): return PractitionerModel( - id=stringModel(string=faker.uuid4()), - identifier=[generator_registry.get('IdentifierGenerator').generate()], - active=booleanModel(boolean=random.choice(['true', 'false'])), + id=stringModel(faker.uuid4()), + active=booleanModel(random.choice(['true', 'false'])), name=[generator_registry.get('HumanNameGenerator').generate()], telecom=[generator_registry.get('ContactPointGenerator').generate()], - gender=codeModel(code=faker.random_element(elements=('male', 'female', 'other', 'unknown'))), + gender=codeModel(faker.random_element(elements=('male', 'female', 'other', 'unknown'))), address=[generator_registry.get('AddressGenerator').generate()], qualification=[generator_registry.get('Practitioner_QualificationGenerator').generate()], communication=[generator_registry.get('Practitioner_CommunicationGenerator').generate()], diff --git a/healthchain/fhir_resources/practitioner_resources.py b/healthchain/fhir_resources/practitioner_resources.py index 978ad46..903686e 100644 --- a/healthchain/fhir_resources/practitioner_resources.py +++ b/healthchain/fhir_resources/practitioner_resources.py @@ -1,7 +1,7 @@ from pydantic import Field, BaseModel from typing import List -from healthchain.fhir_resources.base_resources import BaseModel, idModel, uriModel, codeModel, booleanModel, IdentifierModel, ReferenceModel, stringModel, ExtensionModel, PeriodModel, positiveIntModel, CodeableConceptModel, dateModel -from healthchain.fhir_resources.patient_resources import HumanNameModel, ContactPointModel, AddressModel, AttachmentModel +from healthchain.fhir_resources.base_resources import BaseModel, idModel, uriModel, codeModel, booleanModel, IdentifierModel, ReferenceModel, stringModel, ExtensionModel, PeriodModel, CodeableConceptModel, dateModel +from healthchain.fhir_resources.patient_resources import HumanNameModel, ContactPointModel, AddressModel class Practitioner_QualificationModel(BaseModel): @@ -23,7 +23,7 @@ class Practitioner_CommunicationModel(BaseModel): class PractitionerModel(BaseModel): - resourceType_field: str = "Practitioner" + resourceType: str = "Practitioner" id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py b/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py index 6c284c6..5cacbdb 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py @@ -1,6 +1,8 @@ import pytest from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel + +#TODO: Refactor pytest fixtures def test_PatientModel(): data = { "resourceType": "Patient", @@ -18,6 +20,25 @@ def test_PatientModel(): patient = patient.model_dump(by_alias=True) assert patient['resourceType'] == "Patient" assert patient['name'][0]['given'] == ["John"] + assert patient['birthDate'] == "1980-01-01" + assert patient['gender'] == "Male" + + +def test_PatientModel_invalid(): + # Fails due to invalid date format + data = { + "resourceType": "Patient", + "name": [ + { + "family": "Doe", + "given": ["John"], + "prefix": ["Mr."] + } + ], + "birthDate": "1980-00-00", + } + with pytest.raises(ValueError): + PatientModel(**data) def test_HumanNameModel(): @@ -32,6 +53,17 @@ def test_HumanNameModel(): assert name['given'] == ["John"] +def test_HumanNameModel_invalid(): + # Fails due to invalid data type (int instead of str) for given + data = { + "family": "Doe", + "given": [15], + "prefix": ["Mr."] + } + with pytest.raises(ValueError): + HumanNameModel(**data) + + def test_ContactPointModel(): data = { "system": "phone", diff --git a/tests/test_pydantic_patient_generators.py b/tests/test_pydantic_patient_generators.py deleted file mode 100644 index fd4a7af..0000000 --- a/tests/test_pydantic_patient_generators.py +++ /dev/null @@ -1,27 +0,0 @@ -from healthchain.data_generator.patient_generator import PatientGenerator, HumanNameGenerator - - -def test_human_name_generator(): - # Create an instance of the HumanNameGenerator - generator = HumanNameGenerator() - - # Generate a human name - human_name = generator.generate() - - assert human_name is not None - - -def test_patient_data_generator(): - # Create an instance of the PatientDataGenerator - generator = PatientGenerator() - - # Generate patient data - patient_data = generator.generate() - - # Assert that the patient data is not empty - assert patient_data is not None - - # Assert that the patient data has the expected pydantic fields - assert patient_data.resourceType == "Patient" - assert patient_data.id_field is not None - assert patient_data.active_field is not None From 27e9bff6a8f9c7ffea61d7245e5d760cc3a1215c Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Sun, 12 May 2024 16:17:22 +0100 Subject: [PATCH 12/24] adding encounter --- .../data_generator/encounter_generator.py | 66 ++++++++++++++ .../data_generator/practitioner_generator.py | 4 +- healthchain/fhir_resources/base_resources.py | 13 +++ .../fhir_resources/encounter_resources.py | 91 +++++++++++++++++++ .../fhir_resources/resource_registry.py | 8 +- .../test_fhir_resources_practitioner.py | 55 +++++++++++ .../test_encounter_generators.py | 30 ++++++ .../test_patient_generators.py | 27 ++++++ .../test_practitioner_generators.py | 63 +++++++++++++ 9 files changed, 351 insertions(+), 6 deletions(-) create mode 100644 healthchain/data_generator/encounter_generator.py create mode 100644 healthchain/fhir_resources/encounter_resources.py create mode 100644 tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py create mode 100644 tests/generators_tests/test_encounter_generators.py create mode 100644 tests/generators_tests/test_patient_generators.py create mode 100644 tests/generators_tests/test_practitioner_generators.py diff --git a/healthchain/data_generator/encounter_generator.py b/healthchain/data_generator/encounter_generator.py new file mode 100644 index 0000000..cd4b08b --- /dev/null +++ b/healthchain/data_generator/encounter_generator.py @@ -0,0 +1,66 @@ +from healthchain.fhir_resources.encounter_resources import EncounterModel +from healthchain.fhir_resources.base_resources import CodingModel, CodeableConceptModel +from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator + +from faker import Faker + +faker = Faker() +from typing import Optional + +@register_generator +class ClassGenerator(BaseGenerator): + @staticmethod + def generate(): + patient_class_mapping = { + 'IMP': 'inpatient', + 'AMB': 'ambulatory' + } + patient_class = faker.random_element(elements=('IMP', 'AMB')) + return CodeableConceptModel(coding=[CodingModel( + system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + code=patient_class, + display=patient_class_mapping.get(patient_class) + )] + ) + + +@register_generator +class EncounterTypeGenerator(BaseGenerator): + encounter_type_mapping = { + 'ADMS': 'admission', + 'EMER': 'emergency' + } + encounter_type = faker.random_element(elements=('ADMS', 'EMER')) + @staticmethod + def generate(): + return CodeableConceptModel(coding=[CodingModel( + system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + code=EncounterTypeGenerator.encounter_type, + display=EncounterTypeGenerator.encounter_type_mapping.get(EncounterTypeGenerator.encounter_type) + )]) + + +@register_generator +class EncounterGenerator(BaseGenerator): + @staticmethod + def generate(patient_reference: Optional[str]): + if patient_reference is None: + patient_reference = "Patient/123" + return EncounterModel( + resourceType="Encounter", + id=generator_registry.get('idGenerator').generate(), + text={ + "status": "generated", + "div": "
Encounter with patient @example
" + }, + # TODO: Move the elements to live with the resources + status=faker.random_element(elements=('planned', 'in-progress', 'on-hold', 'discharged', 'cancelled')), + class_field=[generator_registry.get('ClassGenerator').generate()], + type_field=[generator_registry.get('EncounterTypeGenerator').generate()], + subject={ + "reference": patient_reference, + "display": patient_reference + }, + participant=[], + reason=[], + ) diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py index 5946834..a20890e 100644 --- a/healthchain/data_generator/practitioner_generator.py +++ b/healthchain/data_generator/practitioner_generator.py @@ -1,7 +1,5 @@ from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator -from healthchain.data_generator.patient_generator import PeriodGenerator, ContactPointGenerator, AddressGenerator -from healthchain.fhir_resources.base_resources import PeriodModel, booleanModel, CodeableConceptModel, stringModel, CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel -from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel +from healthchain.fhir_resources.base_resources import PeriodModel, booleanModel, CodeableConceptModel, stringModel, CodingModel, uriModel, codeModel from healthchain.fhir_resources.practitioner_resources import PractitionerModel, Practitioner_QualificationModel, Practitioner_CommunicationModel from faker import Faker diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py index 09f1c6c..76e47f6 100644 --- a/healthchain/fhir_resources/base_resources.py +++ b/healthchain/fhir_resources/base_resources.py @@ -77,3 +77,16 @@ class ReferenceModel(BaseModel): type_field: uriModel = Field(default=None, alias="type", description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.") identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.") display_field: stringModel = Field(default=None, alias="display", description="Plain text narrative that identifies the resource in addition to the resource reference.") + + +class CodeableReferenceModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + concept_field: CodeableConceptModel = Field(default=None, alias="concept", description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.") + reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a resource the provides exact details about the information being referenced.") + +class NarrativeModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") + div_field: stringModel = Field(default=None, alias="div", description="The actual narrative content, a stripped down version of XHTML.") diff --git a/healthchain/fhir_resources/encounter_resources.py b/healthchain/fhir_resources/encounter_resources.py new file mode 100644 index 0000000..6ae1d9e --- /dev/null +++ b/healthchain/fhir_resources/encounter_resources.py @@ -0,0 +1,91 @@ +from pydantic import BaseModel, Field +from typing import List +from healthchain.fhir_resources.base_resources import stringModel, idModel, uriModel, codeModel, ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, dateTimeModel, CodeableReferenceModel, NarrativeModel + + +class Encounter_ParticipantModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Role of participant in encounter.") + period_field: PeriodModel = Field(default=None, alias="period", description="The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.") + actor_field: ReferenceModel = Field(default=None, alias="actor", description="Person involved in the encounter, the patient/group is also included here to indicate that the patient was actually participating in the encounter. Not including the patient here covers use cases such as a case meeting between practitioners about a patient - non contact times.") + + +class Encounter_ReasonModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).") + value_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="value", description="Reason the encounter takes place, expressed as a code or a reference to another resource. For admissions, this can be used for a coded admission diagnosis.") + + +class Encounter_DiagnosisModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + condition_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="condition", description="The coded diagnosis or a reference to a Condition (with other resources referenced in the evidence.detail), the use property will indicate the purpose of this specific diagnosis.") + use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).") + + +class Encounter_AdmissionModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + preAdmissionIdentifier_field: IdentifierModel = Field(default=None, alias="preAdmissionIdentifier", description="Pre-admission identifier.") + origin_field: ReferenceModel = Field(default=None, alias="origin", description="The location/organization from which the patient came before admission.") + admitSource_field: CodeableConceptModel = Field(default=None, alias="admitSource", description="From where patient was admitted (physician referral, transfer).") + reAdmission_field: CodeableConceptModel = Field(default=None, alias="reAdmission", description="Indicates that this encounter is directly related to a prior admission, often because the conditions addressed in the prior admission were not fully addressed.") + destination_field: ReferenceModel = Field(default=None, alias="destination", description="Location/organization to which the patient is discharged.") + dischargeDisposition_field: CodeableConceptModel = Field(default=None, alias="dischargeDisposition", description="Category or kind of location after discharge.") + + +class Encounter_LocationModel(BaseModel): + id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the encounter takes place.") + status_field: codeModel = Field(default=None, alias="status", description="The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.") + form_field: CodeableConceptModel = Field(default=None, alias="form", description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") + period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the patient was present at the location.") + + +class EncounterModel(BaseModel): + resourceType: str = "Encounter" + id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") + language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") + identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier(s) by which this encounter is known.") + status_field: codeModel = Field(default=None, alias="status", description="The current state of the encounter (not the state of the patient within the encounter - that is subjectState).") + class_field: List[CodeableConceptModel] = Field(default_factory=list, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") + priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Indicates the urgency of the encounter.") + type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") + serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="Broad categorization of the service that is to be provided (e.g. cardiology).") + subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.") + subjectStatus_field: CodeableConceptModel = Field(default=None, alias="subjectStatus", description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.") + episodeOfCare_field: List[ReferenceModel] = Field(default_factory=list, alias="episodeOfCare", description="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).") + basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The request this encounter satisfies (e.g. incoming referral or procedure request).") + careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="The group(s) of individuals, organizations that are allocated to participate in this encounter. The participants backbone will record the actuals of when these individuals participated during the encounter.") + partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="Another Encounter of which this encounter is a part of (administratively or in time).") + serviceProvider_field: ReferenceModel = Field(default=None, alias="serviceProvider", description="The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the colonoscopy example on the Encounter examples tab.") + participant_field: List[Encounter_ParticipantModel] = Field(default_factory=list, alias="participant", description="The list of people responsible for providing the service.") + appointment_field: List[ReferenceModel] = Field(default_factory=list, alias="appointment", description="The appointment that scheduled this encounter.") + # virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. conference call).") + actualPeriod_field: PeriodModel = Field(default=None, alias="actualPeriod", description="The actual start and end time of the encounter.") + plannedStartDate_field: dateTimeModel = Field(default=None, alias="plannedStartDate", description="The planned start date/time (or admission date) of the encounter.") + plannedEndDate_field: dateTimeModel = Field(default=None, alias="plannedEndDate", description="The planned end date/time (or discharge date) of the encounter.") + # length_field: DurationModel = Field(default=None, alias="length", description="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.") + reason_field: List[Encounter_ReasonModel] = Field(default_factory=list, alias="reason", description="The list of medical reasons that are expected to be addressed during the episode of care.") + diagnosis_field: List[Encounter_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="The list of diagnosis relevant to this encounter.") + account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that may be used for billing for this Encounter.") + dietPreference_field: List[CodeableConceptModel] = Field(default_factory=list, alias="dietPreference", description="Diet preferences reported by the patient.") + specialArrangement_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialArrangement", description="Any special requests that have been made for this encounter, such as the provision of specific equipment or other things.") + specialCourtesy_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialCourtesy", description="Special courtesies that may be provided to the patient during the encounter (VIP, board member, professional courtesy).") + admission_field: Encounter_AdmissionModel = Field(default=None, alias="admission", description="Details about the stay during which a healthcare service is provided.") + location_field: List[Encounter_LocationModel] = Field(default_factory=list, alias="location", description="List of locations where the patient has been during this encounter.") + diff --git a/healthchain/fhir_resources/resource_registry.py b/healthchain/fhir_resources/resource_registry.py index 8b382b8..356e88b 100644 --- a/healthchain/fhir_resources/resource_registry.py +++ b/healthchain/fhir_resources/resource_registry.py @@ -1,8 +1,13 @@ from typing import Enum class ImplementedResourceRegistry(Enum): + Bundle: str = "Bundle" + Encounter: str = "Encounter" + MedicationRequest: str = "MedicationRequest" + NutritionOrder: str = "NutritionOrder" Patient: str = "Patient" Practitioner: str = "Practitioner" + class UnimplementedResourceRegistry(Enum): @@ -21,7 +26,6 @@ class UnimplementedResourceRegistry(Enum): BiologicallyDerivedProduct: str = "BiologicallyDerivedProduct" BiologicallyDerivedProductDispense: str = "BiologicallyDerivedProductDispense" BodyStructure: str = "BodyStructure" - Bundle: str = "Bundle" CapabilityStatement: str = "CapabilityStatement" CarePlan: str = "CarePlan" CareTeam: str = "CareTeam" @@ -98,7 +102,6 @@ class UnimplementedResourceRegistry(Enum): MedicationAdministration: str = "MedicationAdministration" MedicationDispense: str = "MedicationDispense" MedicationKnowledge: str = "MedicationKnowledge" - MedicationRequest: str = "MedicationRequest" MedicationStatement: str = "MedicationStatement" MedicinalProductDefinition: str = "MedicinalProductDefinition" MessageDefinition: str = "MessageDefinition" @@ -106,7 +109,6 @@ class UnimplementedResourceRegistry(Enum): MolecularSequence: str = "MolecularSequence" NamingSystem: str = "NamingSystem" NutritionIntake: str = "NutritionIntake" - NutritionOrder: str = "NutritionOrder" NutritionProduct: str = "NutritionProduct" Observation: str = "Observation" ObservationDefinition: str = "ObservationDefinition" diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py b/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py new file mode 100644 index 0000000..26537ee --- /dev/null +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py @@ -0,0 +1,55 @@ +import pytest +from healthchain.fhir_resources.practitioner_resources import PractitionerModel, Practitioner_CommunicationModel, Practitioner_QualificationModel + +def test_PractitionerModel(): + data = { + "resourceType": "Practitioner", + "name": [ + { + "family": "Doe", + "given": ["John"], + "prefix": ["Mr."] + } + ], + "birthDate": "1980-01-01", + "qualification":[ + { + "code": { + "coding": [ + { + "system": "http://example.org", + "code": "12345", + "display": "Qualification 1" + } + ], + "text": "Qualification 1" + }, + "period": { + "start": "2010-01-01", + "end": "2015-01-01" + } + } + ], + "communication": [ + { + "language": { + "coding": [ + { + "system": "http://example.org", + "code": "en", + "display": "English" + } + ], + "text": "English" + } + } + ] + } + + practitioner = PractitionerModel(**data) + practitioner = practitioner.model_dump(by_alias=True) + assert practitioner['resourceType'] == "Practitioner" + assert practitioner['name'][0]['given'] == ["John"] + assert practitioner['birthDate'] == "1980-01-01" + assert practitioner['qualification'][0]['code']['coding'][0]['code'] == "12345" + diff --git a/tests/generators_tests/test_encounter_generators.py b/tests/generators_tests/test_encounter_generators.py new file mode 100644 index 0000000..98b703a --- /dev/null +++ b/tests/generators_tests/test_encounter_generators.py @@ -0,0 +1,30 @@ +from healthchain.fhir_resources.encounter_resources import EncounterModel +from healthchain.data_generator.encounter_generator import ClassGenerator, EncounterTypeGenerator, EncounterGenerator + + +def test_ClassGenerator(): + patient_class = ClassGenerator.generate() + assert patient_class.coding_field[0].system_field == "http://terminology.hl7.org/CodeSystem/v3-ActCode" + assert patient_class.coding_field[0].code_field in ('IMP', 'AMB') + assert patient_class.coding_field[0].display_field in ('inpatient', 'ambulatory') + + +def test_EncounterTypeGenerator(): + encounter_type = EncounterTypeGenerator.generate() + assert encounter_type.coding_field[0].system_field == "http://terminology.hl7.org/CodeSystem/v3-ActCode" + assert encounter_type.coding_field[0].code_field in ('ADMS', 'EMER') + assert encounter_type.coding_field[0].display_field in ('admission', 'emergency') + + +def test_EncounterModel(): + encounter = EncounterGenerator.generate(patient_reference="Patient/123") + + assert encounter.resourceType == "Encounter" + assert encounter.id_field is not None + assert encounter.text_field is not None + assert encounter.status_field in ('planned', 'in-progress', 'on-hold', 'discharged', 'cancelled') + assert encounter.class_field is not None + assert encounter.type_field is not None + assert encounter.subject_field is not None + assert encounter.subject_field.reference_field == "Patient/123" + assert encounter.subject_field.display_field == "Patient/123" diff --git a/tests/generators_tests/test_patient_generators.py b/tests/generators_tests/test_patient_generators.py new file mode 100644 index 0000000..fd4a7af --- /dev/null +++ b/tests/generators_tests/test_patient_generators.py @@ -0,0 +1,27 @@ +from healthchain.data_generator.patient_generator import PatientGenerator, HumanNameGenerator + + +def test_human_name_generator(): + # Create an instance of the HumanNameGenerator + generator = HumanNameGenerator() + + # Generate a human name + human_name = generator.generate() + + assert human_name is not None + + +def test_patient_data_generator(): + # Create an instance of the PatientDataGenerator + generator = PatientGenerator() + + # Generate patient data + patient_data = generator.generate() + + # Assert that the patient data is not empty + assert patient_data is not None + + # Assert that the patient data has the expected pydantic fields + assert patient_data.resourceType == "Patient" + assert patient_data.id_field is not None + assert patient_data.active_field is not None diff --git a/tests/generators_tests/test_practitioner_generators.py b/tests/generators_tests/test_practitioner_generators.py new file mode 100644 index 0000000..139d2a9 --- /dev/null +++ b/tests/generators_tests/test_practitioner_generators.py @@ -0,0 +1,63 @@ +from healthchain.data_generator.practitioner_generator import PractitionerGenerator, Practitioner_QualificationGenerator, Practitioner_CommunicationGenerator + +def test_practitioner_data_generator(): + # Create an instance of the PractitionerDataGenerator + generator = PractitionerGenerator() + + # Generate practitioner data + practitioner_data = generator.generate() + + # Assert that the practitioner data is not empty + assert practitioner_data is not None + + # Assert that the practitioner data has the expected pydantic fields + assert practitioner_data.resourceType == "Practitioner" + assert practitioner_data.id_field is not None + assert practitioner_data.active_field is not None + assert practitioner_data.name_field is not None + assert practitioner_data.qualification_field is not None + assert practitioner_data.communication_field is not None + + # Assert that the qualification data has the expected pydantic fields + qualification_data = practitioner_data.qualification_field[0] + assert qualification_data.id_field is not None + assert qualification_data.code_field is not None + assert qualification_data.period_field is not None + + # Assert that the communication data has the expected pydantic fields + communication_data = practitioner_data.communication_field[0] + assert communication_data.id_field is not None + assert communication_data.language_field is not None + assert communication_data.preferred_field is not None + + +def test_practitioner_qualification_generator(): + # Create an instance of the PractitionerQualificationGenerator + generator = Practitioner_QualificationGenerator() + + # Generate a practitioner qualification + qualification = generator.generate() + + # Assert that the qualification is not empty + assert qualification is not None + + # Assert that the qualification has the expected pydantic fields + assert qualification.id_field is not None + assert qualification.code_field is not None + assert qualification.period_field is not None + + +def test_practitioner_communication_generator(): + # Create an instance of the PractitionerCommunicationGenerator + generator = Practitioner_CommunicationGenerator() + + # Generate a practitioner communication + communication = generator.generate() + + # Assert that the communication is not empty + assert communication is not None + + # Assert that the communication has the expected pydantic fields + assert communication.id_field is not None + assert communication.language_field is not None + assert communication.preferred_field is not None \ No newline at end of file From 88e02ffe22da368a530b69620e80247fc4bfa787 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Sun, 12 May 2024 16:45:14 +0100 Subject: [PATCH 13/24] pre-commit tidying --- README.md | 1 - healthchain/data_generator/base_generators.py | 62 ++- .../data_generator/encounter_generator.py | 97 +++-- .../generator_templates/templates.py | 13 +- .../data_generator/patient_generator.py | 101 +++-- .../data_generator/practitioner_generator.py | 137 +++--- .../data_generator/pydantic_generator.py | 150 ++++--- healthchain/fhir_resources/base_resources.py | 279 +++++++++--- .../fhir_resources/encounter_resources.py | 402 ++++++++++++++--- .../fhir_resources/patient_resources.py | 411 +++++++++++++++--- .../fhir_resources/practitioner_resources.py | 184 ++++++-- .../fhir_resources/resource_registry.py | 2 +- .../test_fhir_resources_base.py | 17 +- .../test_fhir_resources_patient.py | 76 ++-- .../test_fhir_resources_practitioner.py | 38 +- .../test_encounter_generators.py | 35 +- .../test_patient_generators.py | 5 +- .../test_practitioner_generators.py | 9 +- 18 files changed, 1499 insertions(+), 520 deletions(-) diff --git a/README.md b/README.md index 5b61edf..6a888b8 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,3 @@ Simplify prototyping and testing LLM applications in healthcare context. ## Quickstart You can install this package by running: - diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index 0525108..a49c08b 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -3,135 +3,159 @@ import random import string -from healthchain.fhir_resources.base_resources import booleanModel, canonicalModel, codeModel, dateModel, dateTimeModel, decimalModel, idModel, instantModel, integerModel, markdownModel, positiveIntModel, stringModel, timeModel, unsignedIntModel, uriModel, urlModel, uuidModel +from healthchain.fhir_resources.base_resources import ( + booleanModel, + canonicalModel, + codeModel, + dateModel, + dateTimeModel, + decimalModel, + idModel, + instantModel, + integerModel, + markdownModel, + positiveIntModel, + stringModel, + timeModel, + unsignedIntModel, + uriModel, + urlModel, + uuidModel, +) from faker import Faker + faker = Faker() generator_registry = {} + def register_generator(cls): generator_registry[cls.__name__] = cls return cls + @register_generator class BaseGenerator: @staticmethod def generate(): raise NotImplementedError("Each generator must implement a 'generate' method.") + @register_generator class booleanGenerator(BaseGenerator): @staticmethod def generate(): - return booleanModel(random.choice(['true', 'false'])) - + return booleanModel(random.choice(["true", "false"])) + @register_generator class canonicalGenerator(BaseGenerator): @staticmethod def generate(): return canonicalModel(f"https://example/{faker.uri_path()}") - + @register_generator class codeGenerator(BaseGenerator): # TODO: Codes can technically have whitespace but here I've left it out for simplicity @staticmethod def generate(): - return codeModel(''.join(random.choices(string.ascii_uppercase + string.digits, k=6))) - + return codeModel( + "".join(random.choices(string.ascii_uppercase + string.digits, k=6)) + ) + @register_generator class dateGenerator(BaseGenerator): @staticmethod def generate(): return dateModel(faker.date()) - + @register_generator class dateTimeGenerator(BaseGenerator): @staticmethod def generate(): return dateTimeModel(faker.date_time().isoformat()) - + @register_generator class decimalGenerator(BaseGenerator): @staticmethod def generate(): return decimalModel(faker.random_number()) - + @register_generator class idGenerator(BaseGenerator): @staticmethod def generate(): return idModel(faker.uuid4()) - + @register_generator class instantGenerator(BaseGenerator): @staticmethod def generate(): return instantModel(faker.date_time().isoformat()) - + @register_generator class integerGenerator(BaseGenerator): @staticmethod def generate(): return integerModel(faker.random_int()) - + @register_generator class markdownGenerator(BaseGenerator): @staticmethod def generate(): return markdownModel(faker.text()) - + @register_generator class positiveIntGenerator(BaseGenerator): @staticmethod def generate(): return positiveIntModel(faker.random_int(min=1)) - + @register_generator class stringGenerator(BaseGenerator): @staticmethod def generate(): return stringModel(faker.word()) - + @register_generator class timeGenerator(BaseGenerator): @staticmethod def generate(): return timeModel(faker.time()) - + @register_generator class unsignedIntGenerator(BaseGenerator): @staticmethod def generate(): return unsignedIntModel(faker.random_int(min=0)) - + @register_generator class uriGenerator(BaseGenerator): @staticmethod def generate(): return uriModel(f"https://example/{faker.uri_path()}") - + @register_generator class urlGenerator(BaseGenerator): @staticmethod def generate(): return urlModel(f"https://example/{faker.uri_path()}") - + @register_generator class uuidGenerator(BaseGenerator): diff --git a/healthchain/data_generator/encounter_generator.py b/healthchain/data_generator/encounter_generator.py index cd4b08b..4a4d479 100644 --- a/healthchain/data_generator/encounter_generator.py +++ b/healthchain/data_generator/encounter_generator.py @@ -1,43 +1,69 @@ from healthchain.fhir_resources.encounter_resources import EncounterModel from healthchain.fhir_resources.base_resources import CodingModel, CodeableConceptModel -from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator - +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from typing import Optional from faker import Faker faker = Faker() -from typing import Optional + @register_generator class ClassGenerator(BaseGenerator): @staticmethod def generate(): - patient_class_mapping = { - 'IMP': 'inpatient', - 'AMB': 'ambulatory' - } - patient_class = faker.random_element(elements=('IMP', 'AMB')) - return CodeableConceptModel(coding=[CodingModel( - system="http://terminology.hl7.org/CodeSystem/v3-ActCode", - code=patient_class, - display=patient_class_mapping.get(patient_class) - )] - ) + patient_class_mapping = {"IMP": "inpatient", "AMB": "ambulatory"} + patient_class = faker.random_element(elements=("IMP", "AMB")) + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + code=patient_class, + display=patient_class_mapping.get(patient_class), + ) + ] + ) @register_generator class EncounterTypeGenerator(BaseGenerator): - encounter_type_mapping = { - 'ADMS': 'admission', - 'EMER': 'emergency' - } - encounter_type = faker.random_element(elements=('ADMS', 'EMER')) @staticmethod def generate(): - return CodeableConceptModel(coding=[CodingModel( - system="http://terminology.hl7.org/CodeSystem/v3-ActCode", - code=EncounterTypeGenerator.encounter_type, - display=EncounterTypeGenerator.encounter_type_mapping.get(EncounterTypeGenerator.encounter_type) - )]) + encounter_type_mapping = {"ADMS": "admission", "EMER": "emergency"} + encounter_type = faker.random_element(elements=("ADMS", "EMER")) + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + code=encounter_type, + display=encounter_type_mapping.get(encounter_type), + ) + ] + ) + + +@register_generator +class EncounterPriorityGenerator(BaseGenerator): + @staticmethod + def generate(): + encounter_priority_mapping = { + "ALRT": "alert", + "CRIT": "critical", + "NRM": "normal", + } + encounter_priority = faker.random_element(elements=("ALRT", "CRIT", "NRM")) + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + code=encounter_priority, + display=encounter_priority_mapping.get(encounter_priority), + ) + ] + ) @register_generator @@ -48,19 +74,24 @@ def generate(patient_reference: Optional[str]): patient_reference = "Patient/123" return EncounterModel( resourceType="Encounter", - id=generator_registry.get('idGenerator').generate(), + id=generator_registry.get("idGenerator").generate(), text={ "status": "generated", - "div": "
Encounter with patient @example
" + "div": '
Encounter with patient @example
', }, # TODO: Move the elements to live with the resources - status=faker.random_element(elements=('planned', 'in-progress', 'on-hold', 'discharged', 'cancelled')), - class_field=[generator_registry.get('ClassGenerator').generate()], - type_field=[generator_registry.get('EncounterTypeGenerator').generate()], - subject={ - "reference": patient_reference, - "display": patient_reference - }, + status=faker.random_element( + elements=( + "planned", + "in-progress", + "on-hold", + "discharged", + "cancelled", + ) + ), + class_field=[generator_registry.get("ClassGenerator").generate()], + type_field=[generator_registry.get("EncounterTypeGenerator").generate()], + subject={"reference": patient_reference, "display": patient_reference}, participant=[], reason=[], ) diff --git a/healthchain/data_generator/generator_templates/templates.py b/healthchain/data_generator/generator_templates/templates.py index e447fd3..3e2aca4 100644 --- a/healthchain/data_generator/generator_templates/templates.py +++ b/healthchain/data_generator/generator_templates/templates.py @@ -1,11 +1,6 @@ -from pydantic import Field, BaseModel +from pydantic import BaseModel + class patient_template_1(BaseModel): - name: list = [ - { - "family": "Doe", - "given": ["John"], - "prefix": ["Mr."] - } - ] - birthDate: str = "1999-01-01" \ No newline at end of file + name: list = [{"family": "Doe", "given": ["John"], "prefix": ["Mr."]}] + birthDate: str = "1999-01-01" diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index 3b830ca..66fcb36 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -1,12 +1,30 @@ -from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator -from healthchain.fhir_resources.base_resources import PeriodModel, CodeableConceptModel, stringModel, CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel -from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from healthchain.fhir_resources.base_resources import ( + PeriodModel, + CodeableConceptModel, + stringModel, + CodingModel, + uriModel, + codeModel, + dateTimeModel, + positiveIntModel, +) +from healthchain.fhir_resources.patient_resources import ( + PatientModel, + HumanNameModel, + ContactPointModel, + AddressModel, +) from faker import Faker import random faker = Faker() - + @register_generator class PeriodGenerator(BaseGenerator): @@ -19,26 +37,36 @@ def generate(): start=dateTimeModel(start), end=dateTimeModel(end), ) - + + @register_generator class ContactPointGenerator(BaseGenerator): @staticmethod def generate(): return ContactPointModel( - system=codeModel(faker.random_element(elements=('phone', 'fax', 'email', 'pager', 'url', 'sms', 'other'))), + system=codeModel( + faker.random_element( + elements=("phone", "fax", "email", "pager", "url", "sms", "other") + ) + ), value=stringModel(faker.phone_number()), - use=codeModel(faker.random_element(elements=('home', 'work'))), + use=codeModel(faker.random_element(elements=("home", "work"))), rank=positiveIntModel(random.randint(1, 10)), - period=generator_registry.get('PeriodGenerator').generate(), + period=generator_registry.get("PeriodGenerator").generate(), ) - + + @register_generator class AddressGenerator(BaseGenerator): @staticmethod def generate(): return AddressModel( - use=codeModel(faker.random_element(elements=('home', 'work', 'temp', 'old'))), - type=codeModel(faker.random_element(elements=('postal', 'physical', 'both'))), + use=codeModel( + faker.random_element(elements=("home", "work", "temp", "old")) + ), + type=codeModel( + faker.random_element(elements=("postal", "physical", "both")) + ), text=stringModel(faker.address()), line=[stringModel(faker.street_address())], city=stringModel(faker.city()), @@ -46,28 +74,33 @@ def generate(): state=stringModel(faker.state_abbr()), postalCode=stringModel(faker.postcode()), country=stringModel(faker.country_code()), - period=generator_registry.get('PeriodGenerator').generate(), + period=generator_registry.get("PeriodGenerator").generate(), ) - + @register_generator class maritalStatusGenerator(BaseGenerator): def generate(): marital_status_dict = { - 'D': 'Divorced', - 'L': 'Legally Separated', - 'M': 'Married', + "D": "Divorced", + "L": "Legally Separated", + "M": "Married", } marital_code = faker.random_element(elements=(marital_status_dict.keys())) return CodeableConceptModel( - coding=[CodingModel( - system=uriModel('http://terminology.hl7.org/CodeSystem/v3-MaritalStatus'), - code=codeModel(marital_code), - display=stringModel(marital_status_dict.get(marital_code)), - )], + coding=[ + CodingModel( + system=uriModel( + "http://terminology.hl7.org/CodeSystem/v3-MaritalStatus" + ), + code=codeModel(marital_code), + display=stringModel(marital_status_dict.get(marital_code)), + ) + ], text=stringModel(marital_status_dict.get(marital_code)), ) + @register_generator class HumanNameGenerator(BaseGenerator): @staticmethod @@ -79,18 +112,26 @@ def generate(): suffix=[stringModel(faker.suffix())], ) + @register_generator class PatientGenerator(BaseGenerator): @staticmethod def generate(): return PatientModel( - resourceType='Patient', - id=generator_registry.get('idGenerator').generate(), - active=generator_registry.get('booleanGenerator').generate(), - name=[generator_registry.get('HumanNameGenerator').generate()], - telecom=[generator_registry.get('ContactPointGenerator').generate() for _ in range(1)], ## List of length 1 for simplicity - gender=codeModel(faker.random_element(elements=('male', 'female', 'other', 'unknown'))), - birthDate=generator_registry.get('dateGenerator').generate(), - address=[generator_registry.get('AddressGenerator').generate() for _ in range(1)], ## List of length 1 for simplicity - maritalStatus=generator_registry.get('maritalStatusGenerator').generate() + resourceType="Patient", + id=generator_registry.get("idGenerator").generate(), + active=generator_registry.get("booleanGenerator").generate(), + name=[generator_registry.get("HumanNameGenerator").generate()], + telecom=[ + generator_registry.get("ContactPointGenerator").generate() + for _ in range(1) + ], ## List of length 1 for simplicity + gender=codeModel( + faker.random_element(elements=("male", "female", "other", "unknown")) + ), + birthDate=generator_registry.get("dateGenerator").generate(), + address=[ + generator_registry.get("AddressGenerator").generate() for _ in range(1) + ], ## List of length 1 for simplicity + maritalStatus=generator_registry.get("maritalStatusGenerator").generate(), ) diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py index a20890e..dd64a11 100644 --- a/healthchain/data_generator/practitioner_generator.py +++ b/healthchain/data_generator/practitioner_generator.py @@ -1,6 +1,21 @@ -from healthchain.data_generator.base_generators import BaseGenerator, generator_registry, register_generator -from healthchain.fhir_resources.base_resources import PeriodModel, booleanModel, CodeableConceptModel, stringModel, CodingModel, uriModel, codeModel -from healthchain.fhir_resources.practitioner_resources import PractitionerModel, Practitioner_QualificationModel, Practitioner_CommunicationModel +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from healthchain.fhir_resources.base_resources import ( + booleanModel, + CodeableConceptModel, + stringModel, + CodingModel, + uriModel, + codeModel, +) +from healthchain.fhir_resources.practitioner_resources import ( + PractitionerModel, + Practitioner_QualificationModel, + Practitioner_CommunicationModel, +) from faker import Faker @@ -13,76 +28,93 @@ class QualificationGenerator(BaseGenerator): # TODO: Update with realistic qualifications qualification_dict = { - '12345': 'Qualification 1', - '67890': 'Qualification 2', - '54321': 'Qualification 3', - '09876': 'Qualification 4', - '65432': 'Qualification 5', + "12345": "Qualification 1", + "67890": "Qualification 2", + "54321": "Qualification 3", + "09876": "Qualification 4", + "65432": "Qualification 5", } + @staticmethod def generate(): - random_qual = faker.random_element(elements=QualificationGenerator.qualification_dict.keys()) + random_qual = faker.random_element( + elements=QualificationGenerator.qualification_dict.keys() + ) return CodeableConceptModel( - coding=[CodingModel( - system=uriModel("http://example.org"), - code=codeModel(random_qual), - display=stringModel(QualificationGenerator.qualification_dict.get(random_qual)) - )], - text=stringModel(QualificationGenerator.qualification_dict.get(random_qual)) + coding=[ + CodingModel( + system=uriModel("http://example.org"), + code=codeModel(random_qual), + display=stringModel( + QualificationGenerator.qualification_dict.get(random_qual) + ), + ) + ], + text=stringModel( + QualificationGenerator.qualification_dict.get(random_qual) + ), ) + @register_generator class Practitioner_QualificationGenerator(BaseGenerator): # TODO: Refactor the value set to live with the resources - - @staticmethod def generate(): return Practitioner_QualificationModel( id=stringModel(faker.uuid4()), - code=generator_registry.get('QualificationGenerator').generate(), + code=generator_registry.get("QualificationGenerator").generate(), # TODO: Modify period generator to have flexibility to set to present date - period=generator_registry.get('PeriodGenerator').generate(), + period=generator_registry.get("PeriodGenerator").generate(), # issuer=generator_registry.get('ReferenceGenerator').generate(), ) - @register_generator -class LanguageGenerator(): - language_value_dict = {'en': 'English', - 'es': 'Spanish', - 'fr': 'French', - 'de': 'German', - 'it': 'Italian', - 'ja': 'Japanese', - 'ko': 'Korean', - 'zh': 'Chinese', - 'ru': 'Russian', - 'ar': 'Arabic'} +class LanguageGenerator: + language_value_dict = { + "en": "English", + "es": "Spanish", + "fr": "French", + "de": "German", + "it": "Italian", + "ja": "Japanese", + "ko": "Korean", + "zh": "Chinese", + "ru": "Russian", + "ar": "Arabic", + } + @staticmethod def generate(): - language = faker.random_element(elements=LanguageGenerator.language_value_dict.keys()) + language = faker.random_element( + elements=LanguageGenerator.language_value_dict.keys() + ) return CodeableConceptModel( - coding=[CodingModel( - system=uriModel("http://terminology.hl7.org/CodeSystem/languages"), - code=codeModel(language), - display=stringModel(LanguageGenerator.language_value_dict.get(language)) - )], - text=stringModel(LanguageGenerator.language_value_dict.get(language)) + coding=[ + CodingModel( + system=uriModel("http://terminology.hl7.org/CodeSystem/languages"), + code=codeModel(language), + display=stringModel( + LanguageGenerator.language_value_dict.get(language) + ), + ) + ], + text=stringModel(LanguageGenerator.language_value_dict.get(language)), ) + @register_generator class Practitioner_CommunicationGenerator(BaseGenerator): @staticmethod def generate(): return Practitioner_CommunicationModel( id=stringModel(faker.uuid4()), - language=generator_registry.get('LanguageGenerator').generate(), - preferred=booleanModel(random.choice(['true', 'false'])), + language=generator_registry.get("LanguageGenerator").generate(), + preferred=booleanModel(random.choice(["true", "false"])), ) - + @register_generator class PractitionerGenerator(BaseGenerator): @@ -90,12 +122,17 @@ class PractitionerGenerator(BaseGenerator): def generate(): return PractitionerModel( id=stringModel(faker.uuid4()), - active=booleanModel(random.choice(['true', 'false'])), - name=[generator_registry.get('HumanNameGenerator').generate()], - telecom=[generator_registry.get('ContactPointGenerator').generate()], - gender=codeModel(faker.random_element(elements=('male', 'female', 'other', 'unknown'))), - address=[generator_registry.get('AddressGenerator').generate()], - qualification=[generator_registry.get('Practitioner_QualificationGenerator').generate()], - communication=[generator_registry.get('Practitioner_CommunicationGenerator').generate()], - - ) \ No newline at end of file + active=booleanModel(random.choice(["true", "false"])), + name=[generator_registry.get("HumanNameGenerator").generate()], + telecom=[generator_registry.get("ContactPointGenerator").generate()], + gender=codeModel( + faker.random_element(elements=("male", "female", "other", "unknown")) + ), + address=[generator_registry.get("AddressGenerator").generate()], + qualification=[ + generator_registry.get("Practitioner_QualificationGenerator").generate() + ], + communication=[ + generator_registry.get("Practitioner_CommunicationGenerator").generate() + ], + ) diff --git a/healthchain/data_generator/pydantic_generator.py b/healthchain/data_generator/pydantic_generator.py index 98df0ae..0ceb155 100644 --- a/healthchain/data_generator/pydantic_generator.py +++ b/healthchain/data_generator/pydantic_generator.py @@ -1,11 +1,11 @@ -from pydantic import BaseModel, Field -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List import json + # Function to load JSON data from a file def load_data(file_path: str) -> Dict: try: - with open(file_path, 'r') as file: + with open(file_path, "r") as file: return json.load(file) except FileNotFoundError: print("File not found.") @@ -14,102 +14,120 @@ def load_data(file_path: str) -> Dict: print("Failed to decode JSON.") raise + # Function to write a single Pydantic model based on the schema information def write_model(file, name: str, model_info: Dict) -> Dict[str, List[str]]: enum_items: dict = {} enum_list: list = [] - if 'oneOf' in model_info: - file.write(f'class {name}Model(Enum):\n') - for item in model_info['oneOf']: - if '$ref' in item: - name = item['$ref'].split('/')[-1] + if "oneOf" in model_info: + file.write(f"class {name}Model(Enum):\n") + for item in model_info["oneOf"]: + if "$ref" in item: + name = item["$ref"].split("/")[-1] file.write(f' {name}: stringModel = "{item["$ref"]}"\n') return enum_items - if 'properties' in model_info: - file.write(f'class {name}Model(BaseModel):\n') - for prop_name, prop_info in model_info['properties'].items(): - if prop_name.startswith('_'): + if "properties" in model_info: + file.write(f"class {name}Model(BaseModel):\n") + for prop_name, prop_info in model_info["properties"].items(): + if prop_name.startswith("_"): continue - prop_description = prop_info.get('description', '').replace('"', '').split('\n')[0].split('\r')[0] + prop_description = ( + prop_info.get("description", "") + .replace('"', "") + .split("\n")[0] + .split("\r")[0] + ) write_field(file, prop_name, prop_info, prop_description, name) - if 'enum' in prop_info: - enum_items = prop_info['enum'] + if "enum" in prop_info: + enum_items = prop_info["enum"] enum_items = [str(item) for item in enum_items] - enum_list.append({f'{name}_{prop_name}': enum_items}) - elif 'pattern' in model_info: + enum_list.append({f"{name}_{prop_name}": enum_items}) + elif "pattern" in model_info: pydantic_type = None - pattern = model_info.get('pattern') - description = model_info.get('description').replace('"', '').split('\n')[0].split('\r')[0] - field_type = model_info.get('type') - if field_type == 'string': - pydantic_type = 'str' - elif field_type == 'integer': - pydantic_type = 'int' - elif field_type == 'number': - pydantic_type = 'float' + pattern = model_info.get("pattern") + description = ( + model_info.get("description").replace('"', "").split("\n")[0].split("\r")[0] + ) + field_type = model_info.get("type") + if field_type == "string": + pydantic_type = "str" + elif field_type == "integer": + pydantic_type = "int" + elif field_type == "number": + pydantic_type = "float" else: - pydantic_type = 'str' - file.write(f'class {name}Model(BaseModel):\n') - file.write(f' {name}: {pydantic_type} = Field(pattern=r\'{pattern}\')\n\n') - file.write(f' class Config:\n') - file.write(f' schema_extra = {{\n') + pydantic_type = "str" + file.write(f"class {name}Model(BaseModel):\n") + file.write(f" {name}: {pydantic_type} = Field(pattern=r'{pattern}')\n\n") + file.write(" class Config:\n") + file.write(" schema_extra = {\n") file.write(f' "description": "{description}"\n') - file.write(f' }}\n\n') + file.write(" }\n\n") - file.write('\n') + file.write("\n") return enum_list + # Helper function to handle the writing of model fields -def write_field(file, prop_name: str, prop_info: Dict, prop_description: str, name: str): - if '$ref' in prop_info: - ref_model = prop_info['$ref'].split('/')[-1] - if ref_model == 'base64Binary': - ref_model = 'string' - file.write(f' {prop_name}_field: {ref_model}Model = Field(default=None, alias="{prop_name}", description="{prop_description}")\n') - elif 'type' in prop_info and 'items' in prop_info and '$ref' in prop_info['items']: - item_model = prop_info['items']['$ref'].split('/')[-1] - file.write(f' {prop_name}_field: List[{item_model}Model] = Field(default_factory=list, alias="{prop_name}", description="{prop_description}")\n') - elif 'enum' in prop_info: - file.write(f' {name}_{prop_name}_field: {prop_name}Model = Field(..., alias="{prop_name}", description="{prop_description}")\n') - elif 'const' in prop_info: +def write_field( + file, prop_name: str, prop_info: Dict, prop_description: str, name: str +): + if "$ref" in prop_info: + ref_model = prop_info["$ref"].split("/")[-1] + if ref_model == "base64Binary": + ref_model = "string" + file.write( + f' {prop_name}_field: {ref_model}Model = Field(default=None, alias="{prop_name}", description="{prop_description}")\n' + ) + elif "type" in prop_info and "items" in prop_info and "$ref" in prop_info["items"]: + item_model = prop_info["items"]["$ref"].split("/")[-1] + file.write( + f' {prop_name}_field: List[{item_model}Model] = Field(default_factory=list, alias="{prop_name}", description="{prop_description}")\n' + ) + elif "enum" in prop_info: + file.write( + f' {name}_{prop_name}_field: {prop_name}Model = Field(..., alias="{prop_name}", description="{prop_description}")\n' + ) + elif "const" in prop_info: file.write(f' {prop_name}: str = "{prop_info["const"]}"\n') + # Generate all Pydantic models from the schema def generate_pydantic_models(schema: Dict[str, Any], output_file: str): - with open(output_file, 'w') as file: + with open(output_file, "w") as file: enum_list_total = [] - file.write('from __future__ import annotations\n') - file.write('from pydantic import BaseModel, Field\n') - file.write('from typing import List, Optional\n') - file.write('from enum import Enum\n\n') + file.write("from __future__ import annotations\n") + file.write("from pydantic import BaseModel, Field\n") + file.write("from typing import List, Optional\n") + file.write("from enum import Enum\n\n") for model_name, model_info in schema.items(): - if model_name != 'Base': + if model_name != "Base": enum_list = write_model(file, model_name, model_info) enum_list_total.extend(enum_list) - #TODO: Need to keep a global list of enums to avoid duplicates + # TODO: Need to keep a global list of enums to avoid duplicates for enum_item in enum_list_total: name = list(enum_item.keys())[0] - file.write(f'class {name}(Enum):\n') - enum_items = enum_item[name] + file.write(f"class {name}(Enum):\n") + enum_item[name] # for item in enum_items: - ## TODO: Handle special characters in item names - # file.write(f' {item.replace("-", "_")} = "{item}"\n') - file.write(' pass\n\n') - file.write('\n') - - file.write('HumanNameModel.model_rebuild()\n') + ## TODO: Handle special characters in item names + # file.write(f' {item.replace("-", "_")} = "{item}"\n') + file.write(" pass\n\n") + file.write("\n") + + file.write("HumanNameModel.model_rebuild()\n") # Main execution flow -if __name__ == '__main__': - data: dict = load_data('../data/fhir.schema.json') - definitions = data.get('definitions', {}) - generate_pydantic_models(definitions, 'src/pydantic_models.py') - print('Pydantic models generated successfully!') +if __name__ == "__main__": + data: dict = load_data("../data/fhir.schema.json") + definitions = data.get("definitions", {}) + generate_pydantic_models(definitions, "src/pydantic_models.py") + print("Pydantic models generated successfully!") -class MyEmptyClass(): +class MyEmptyClass: pass diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py index 76e47f6..742e596 100644 --- a/healthchain/fhir_resources/base_resources.py +++ b/healthchain/fhir_resources/base_resources.py @@ -1,92 +1,255 @@ - from __future__ import annotations from pydantic import BaseModel, Field, conint -from typing_extensions import Annotated from typing import List -from pydantic import constr, confloat +from pydantic import constr booleanModel = constr(pattern=r"^(true|false)$") -canonicalModel = constr(pattern=r'^\S*$') -codeModel = constr(pattern=r'^[^\s]+( [^\s]+)*$') -dateModel = constr(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$') -dateTimeModel = constr(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$') -decimalModel = constr(pattern=r'^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$') -idModel = constr(pattern=r'^[A-Za-z0-9\-\.]{1,64}$') -instantModel = constr(pattern=r'^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$') -integerModel = constr(pattern=r'^[0]|[-+]?[1-9][0-9]*$') -integer64Model = constr(pattern=r'^[0]|[-+]?[1-9][0-9]*$') -markdownModel = constr(pattern=r'^^[\s\S]+$$') -oidModel = constr(pattern=r'^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$') +canonicalModel = constr(pattern=r"^\S*$") +codeModel = constr(pattern=r"^[^\s]+( [^\s]+)*$") +dateModel = constr( + pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$" +) +dateTimeModel = constr( + pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$" +) +decimalModel = constr( + pattern=r"^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$" +) +idModel = constr(pattern=r"^[A-Za-z0-9\-\.]{1,64}$") +instantModel = constr( + pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$" +) +integerModel = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") +integer64Model = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") +markdownModel = constr(pattern=r"^^[\s\S]+$$") +oidModel = constr(pattern=r"^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$") positiveIntModel = conint(strict=True, gt=0) -stringModel = constr(pattern=r'^^[\s\S]+$$') -timeModel = constr(pattern=r'^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$') -unsignedIntModel = constr(pattern=r'^[0]|([1-9][0-9]*)$') -uriModel = constr(pattern=r'^\S*$') -urlModel = constr(pattern=r'^\S*$') -uuidModel = constr(pattern=r'^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') +stringModel = constr(pattern=r"^^[\s\S]+$$") +timeModel = constr( + pattern=r"^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$" +) +unsignedIntModel = constr(pattern=r"^[0]|([1-9][0-9]*)$") +uriModel = constr(pattern=r"^\S*$") +urlModel = constr(pattern=r"^\S*$") +uuidModel = constr( + pattern=r"^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" +) # TODO: Rename to primitives and move the models below to a separate file called General-purpose data types class ExtensionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - url_field: uriModel = Field(default=None, alias="url", description="Source of the definition for the extension code - a logical name or a URL.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + url_field: uriModel = Field( + default=None, + alias="url", + description="Source of the definition for the extension code - a logical name or a URL.", + ) class PeriodModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - start_field: dateTimeModel = Field(default=None, alias="start", description="The start of the period. The boundary is inclusive.") - end_field: dateTimeModel = Field(default=None, alias="end", description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + start_field: dateTimeModel = Field( + default=None, + alias="start", + description="The start of the period. The boundary is inclusive.", + ) + end_field: dateTimeModel = Field( + default=None, + alias="end", + description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.", + ) class IdentifierModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") - type_field: CodeableConceptModel = Field(default=None, alias="type", description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.") - system_field: uriModel = Field(default=None, alias="system", description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.") - value_field: stringModel = Field(default=None, alias="value", description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which identifier is/was valid for use.") - assigner_field: ReferenceModel = Field(default=None, alias="assigner", description="Organization that issued/manages the identifier.") + type_field: CodeableConceptModel = Field( + default=None, + alias="type", + description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.", + ) + value_field: stringModel = Field( + default=None, + alias="value", + description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Time period during which identifier is/was valid for use.", + ) + assigner_field: ReferenceModel = Field( + default=None, + alias="assigner", + description="Organization that issued/manages the identifier.", + ) class CodingModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - system_field: uriModel = Field(default=None, alias="system", description="The identification of the code system that defines the meaning of the symbol in the code.") - version_field: stringModel = Field(default=None, alias="version", description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.") - code_field: codeModel = Field(default=None, alias="code", description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).") - display_field: stringModel = Field(default=None, alias="display", description="A representation of the meaning of the code in the system, following the rules of the system.") - userSelected_field: booleanModel = Field(default=None, alias="userSelected", description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the code system that defines the meaning of the symbol in the code.", + ) + version_field: stringModel = Field( + default=None, + alias="version", + description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).", + ) + display_field: stringModel = Field( + default=None, + alias="display", + description="A representation of the meaning of the code in the system, following the rules of the system.", + ) + userSelected_field: booleanModel = Field( + default=None, + alias="userSelected", + description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).", + ) class CodeableConceptModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - coding_field: List[CodingModel] = Field(default_factory=list, alias="coding", description="A reference to a code defined by a terminology system.") - text_field: stringModel = Field(default=None, alias="text", description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + coding_field: List[CodingModel] = Field( + default_factory=list, + alias="coding", + description="A reference to a code defined by a terminology system.", + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.", + ) class ReferenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - reference_field: stringModel = Field(default=None, alias="reference", description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.") - type_field: uriModel = Field(default=None, alias="type", description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.") - identifier_field: IdentifierModel = Field(default=None, alias="identifier", description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.") - display_field: stringModel = Field(default=None, alias="display", description="Plain text narrative that identifies the resource in addition to the resource reference.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + reference_field: stringModel = Field( + default=None, + alias="reference", + description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.", + ) + type_field: uriModel = Field( + default=None, + alias="type", + description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.", + ) + identifier_field: IdentifierModel = Field( + default=None, + alias="identifier", + description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", + ) + display_field: stringModel = Field( + default=None, + alias="display", + description="Plain text narrative that identifies the resource in addition to the resource reference.", + ) class CodeableReferenceModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - concept_field: CodeableConceptModel = Field(default=None, alias="concept", description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.") - reference_field: ReferenceModel = Field(default=None, alias="reference", description="A reference to a resource the provides exact details about the information being referenced.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + concept_field: CodeableConceptModel = Field( + default=None, + alias="concept", + description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.", + ) + reference_field: ReferenceModel = Field( + default=None, + alias="reference", + description="A reference to a resource the provides exact details about the information being referenced.", + ) + class NarrativeModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") - div_field: stringModel = Field(default=None, alias="div", description="The actual narrative content, a stripped down version of XHTML.") + div_field: stringModel = Field( + default=None, + alias="div", + description="The actual narrative content, a stripped down version of XHTML.", + ) diff --git a/healthchain/fhir_resources/encounter_resources.py b/healthchain/fhir_resources/encounter_resources.py index 6ae1d9e..2e82351 100644 --- a/healthchain/fhir_resources/encounter_resources.py +++ b/healthchain/fhir_resources/encounter_resources.py @@ -1,91 +1,359 @@ from pydantic import BaseModel, Field from typing import List -from healthchain.fhir_resources.base_resources import stringModel, idModel, uriModel, codeModel, ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, dateTimeModel, CodeableReferenceModel, NarrativeModel +from healthchain.fhir_resources.base_resources import ( + stringModel, + idModel, + uriModel, + codeModel, + ExtensionModel, + IdentifierModel, + CodeableConceptModel, + ReferenceModel, + PeriodModel, + dateTimeModel, + CodeableReferenceModel, + NarrativeModel, +) class Encounter_ParticipantModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Role of participant in encounter.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.") - actor_field: ReferenceModel = Field(default=None, alias="actor", description="Person involved in the encounter, the patient/group is also included here to indicate that the patient was actually participating in the encounter. Not including the patient here covers use cases such as a case meeting between practitioners about a patient - non contact times.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + type_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="type", + description="Role of participant in encounter.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period.", + ) + actor_field: ReferenceModel = Field( + default=None, + alias="actor", + description="Person involved in the encounter, the patient/group is also included here to indicate that the patient was actually participating in the encounter. Not including the patient here covers use cases such as a case meeting between practitioners about a patient - non contact times.", + ) class Encounter_ReasonModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).") - value_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="value", description="Reason the encounter takes place, expressed as a code or a reference to another resource. For admissions, this can be used for a coded admission diagnosis.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + use_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="use", + description="What the reason value should be used as e.g. Chief Complaint, Health Concern, Health Maintenance (including screening).", + ) + value_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="value", + description="Reason the encounter takes place, expressed as a code or a reference to another resource. For admissions, this can be used for a coded admission diagnosis.", + ) class Encounter_DiagnosisModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - condition_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="condition", description="The coded diagnosis or a reference to a Condition (with other resources referenced in the evidence.detail), the use property will indicate the purpose of this specific diagnosis.") - use_field: List[CodeableConceptModel] = Field(default_factory=list, alias="use", description="Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + condition_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="condition", + description="The coded diagnosis or a reference to a Condition (with other resources referenced in the evidence.detail), the use property will indicate the purpose of this specific diagnosis.", + ) + use_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="use", + description="Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …).", + ) class Encounter_AdmissionModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - preAdmissionIdentifier_field: IdentifierModel = Field(default=None, alias="preAdmissionIdentifier", description="Pre-admission identifier.") - origin_field: ReferenceModel = Field(default=None, alias="origin", description="The location/organization from which the patient came before admission.") - admitSource_field: CodeableConceptModel = Field(default=None, alias="admitSource", description="From where patient was admitted (physician referral, transfer).") - reAdmission_field: CodeableConceptModel = Field(default=None, alias="reAdmission", description="Indicates that this encounter is directly related to a prior admission, often because the conditions addressed in the prior admission were not fully addressed.") - destination_field: ReferenceModel = Field(default=None, alias="destination", description="Location/organization to which the patient is discharged.") - dischargeDisposition_field: CodeableConceptModel = Field(default=None, alias="dischargeDisposition", description="Category or kind of location after discharge.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + preAdmissionIdentifier_field: IdentifierModel = Field( + default=None, + alias="preAdmissionIdentifier", + description="Pre-admission identifier.", + ) + origin_field: ReferenceModel = Field( + default=None, + alias="origin", + description="The location/organization from which the patient came before admission.", + ) + admitSource_field: CodeableConceptModel = Field( + default=None, + alias="admitSource", + description="From where patient was admitted (physician referral, transfer).", + ) + reAdmission_field: CodeableConceptModel = Field( + default=None, + alias="reAdmission", + description="Indicates that this encounter is directly related to a prior admission, often because the conditions addressed in the prior admission were not fully addressed.", + ) + destination_field: ReferenceModel = Field( + default=None, + alias="destination", + description="Location/organization to which the patient is discharged.", + ) + dischargeDisposition_field: CodeableConceptModel = Field( + default=None, + alias="dischargeDisposition", + description="Category or kind of location after discharge.", + ) class Encounter_LocationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - location_field: ReferenceModel = Field(default=None, alias="location", description="The location where the encounter takes place.") - status_field: codeModel = Field(default=None, alias="status", description="The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.") - form_field: CodeableConceptModel = Field(default=None, alias="form", description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period during which the patient was present at the location.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + location_field: ReferenceModel = Field( + default=None, + alias="location", + description="The location where the encounter takes place.", + ) + status_field: codeModel = Field( + default=None, + alias="status", + description="The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time.", + ) + form_field: CodeableConceptModel = Field( + default=None, + alias="form", + description="This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Time period during which the patient was present at the location.", + ) class EncounterModel(BaseModel): - resourceType: str = "Encounter" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + resourceType: str = "Encounter" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: NarrativeModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) + text_field: NarrativeModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="Identifier(s) by which this encounter is known.") - status_field: codeModel = Field(default=None, alias="status", description="The current state of the encounter (not the state of the patient within the encounter - that is subjectState).") - class_field: List[CodeableConceptModel] = Field(default_factory=list, alias="class", description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.") - priority_field: CodeableConceptModel = Field(default=None, alias="priority", description="Indicates the urgency of the encounter.") - type_field: List[CodeableConceptModel] = Field(default_factory=list, alias="type", description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).") - serviceType_field: List[CodeableReferenceModel] = Field(default_factory=list, alias="serviceType", description="Broad categorization of the service that is to be provided (e.g. cardiology).") - subject_field: ReferenceModel = Field(default=None, alias="subject", description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.") - subjectStatus_field: CodeableConceptModel = Field(default=None, alias="subjectStatus", description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.") - episodeOfCare_field: List[ReferenceModel] = Field(default_factory=list, alias="episodeOfCare", description="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).") - basedOn_field: List[ReferenceModel] = Field(default_factory=list, alias="basedOn", description="The request this encounter satisfies (e.g. incoming referral or procedure request).") - careTeam_field: List[ReferenceModel] = Field(default_factory=list, alias="careTeam", description="The group(s) of individuals, organizations that are allocated to participate in this encounter. The participants backbone will record the actuals of when these individuals participated during the encounter.") - partOf_field: ReferenceModel = Field(default=None, alias="partOf", description="Another Encounter of which this encounter is a part of (administratively or in time).") - serviceProvider_field: ReferenceModel = Field(default=None, alias="serviceProvider", description="The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the colonoscopy example on the Encounter examples tab.") - participant_field: List[Encounter_ParticipantModel] = Field(default_factory=list, alias="participant", description="The list of people responsible for providing the service.") - appointment_field: List[ReferenceModel] = Field(default_factory=list, alias="appointment", description="The appointment that scheduled this encounter.") + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="Identifier(s) by which this encounter is known.", + ) + status_field: codeModel = Field( + default=None, + alias="status", + description="The current state of the encounter (not the state of the patient within the encounter - that is subjectState).", + ) + class_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="class", + description="Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations.", + ) + priority_field: CodeableConceptModel = Field( + default=None, + alias="priority", + description="Indicates the urgency of the encounter.", + ) + type_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="type", + description="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).", + ) + serviceType_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="serviceType", + description="Broad categorization of the service that is to be provided (e.g. cardiology).", + ) + subject_field: ReferenceModel = Field( + default=None, + alias="subject", + description="The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteam.", + ) + subjectStatus_field: CodeableConceptModel = Field( + default=None, + alias="subjectStatus", + description="The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting status.", + ) + episodeOfCare_field: List[ReferenceModel] = Field( + default_factory=list, + alias="episodeOfCare", + description="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).", + ) + basedOn_field: List[ReferenceModel] = Field( + default_factory=list, + alias="basedOn", + description="The request this encounter satisfies (e.g. incoming referral or procedure request).", + ) + careTeam_field: List[ReferenceModel] = Field( + default_factory=list, + alias="careTeam", + description="The group(s) of individuals, organizations that are allocated to participate in this encounter. The participants backbone will record the actuals of when these individuals participated during the encounter.", + ) + partOf_field: ReferenceModel = Field( + default=None, + alias="partOf", + description="Another Encounter of which this encounter is a part of (administratively or in time).", + ) + serviceProvider_field: ReferenceModel = Field( + default=None, + alias="serviceProvider", + description="The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the colonoscopy example on the Encounter examples tab.", + ) + participant_field: List[Encounter_ParticipantModel] = Field( + default_factory=list, + alias="participant", + description="The list of people responsible for providing the service.", + ) + appointment_field: List[ReferenceModel] = Field( + default_factory=list, + alias="appointment", + description="The appointment that scheduled this encounter.", + ) # virtualService_field: List[VirtualServiceDetailModel] = Field(default_factory=list, alias="virtualService", description="Connection details of a virtual service (e.g. conference call).") - actualPeriod_field: PeriodModel = Field(default=None, alias="actualPeriod", description="The actual start and end time of the encounter.") - plannedStartDate_field: dateTimeModel = Field(default=None, alias="plannedStartDate", description="The planned start date/time (or admission date) of the encounter.") - plannedEndDate_field: dateTimeModel = Field(default=None, alias="plannedEndDate", description="The planned end date/time (or discharge date) of the encounter.") + actualPeriod_field: PeriodModel = Field( + default=None, + alias="actualPeriod", + description="The actual start and end time of the encounter.", + ) + plannedStartDate_field: dateTimeModel = Field( + default=None, + alias="plannedStartDate", + description="The planned start date/time (or admission date) of the encounter.", + ) + plannedEndDate_field: dateTimeModel = Field( + default=None, + alias="plannedEndDate", + description="The planned end date/time (or discharge date) of the encounter.", + ) # length_field: DurationModel = Field(default=None, alias="length", description="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.") - reason_field: List[Encounter_ReasonModel] = Field(default_factory=list, alias="reason", description="The list of medical reasons that are expected to be addressed during the episode of care.") - diagnosis_field: List[Encounter_DiagnosisModel] = Field(default_factory=list, alias="diagnosis", description="The list of diagnosis relevant to this encounter.") - account_field: List[ReferenceModel] = Field(default_factory=list, alias="account", description="The set of accounts that may be used for billing for this Encounter.") - dietPreference_field: List[CodeableConceptModel] = Field(default_factory=list, alias="dietPreference", description="Diet preferences reported by the patient.") - specialArrangement_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialArrangement", description="Any special requests that have been made for this encounter, such as the provision of specific equipment or other things.") - specialCourtesy_field: List[CodeableConceptModel] = Field(default_factory=list, alias="specialCourtesy", description="Special courtesies that may be provided to the patient during the encounter (VIP, board member, professional courtesy).") - admission_field: Encounter_AdmissionModel = Field(default=None, alias="admission", description="Details about the stay during which a healthcare service is provided.") - location_field: List[Encounter_LocationModel] = Field(default_factory=list, alias="location", description="List of locations where the patient has been during this encounter.") - + reason_field: List[Encounter_ReasonModel] = Field( + default_factory=list, + alias="reason", + description="The list of medical reasons that are expected to be addressed during the episode of care.", + ) + diagnosis_field: List[Encounter_DiagnosisModel] = Field( + default_factory=list, + alias="diagnosis", + description="The list of diagnosis relevant to this encounter.", + ) + account_field: List[ReferenceModel] = Field( + default_factory=list, + alias="account", + description="The set of accounts that may be used for billing for this Encounter.", + ) + dietPreference_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="dietPreference", + description="Diet preferences reported by the patient.", + ) + specialArrangement_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="specialArrangement", + description="Any special requests that have been made for this encounter, such as the provision of specific equipment or other things.", + ) + specialCourtesy_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="specialCourtesy", + description="Special courtesies that may be provided to the patient during the encounter (VIP, board member, professional courtesy).", + ) + admission_field: Encounter_AdmissionModel = Field( + default=None, + alias="admission", + description="Details about the stay during which a healthcare service is provided.", + ) + location_field: List[Encounter_LocationModel] = Field( + default_factory=list, + alias="location", + description="List of locations where the patient has been during this encounter.", + ) diff --git a/healthchain/fhir_resources/patient_resources.py b/healthchain/fhir_resources/patient_resources.py index 03a8eaf..f5db87e 100644 --- a/healthchain/fhir_resources/patient_resources.py +++ b/healthchain/fhir_resources/patient_resources.py @@ -1,96 +1,369 @@ from pydantic import Field, BaseModel from typing import List -from healthchain.fhir_resources.base_resources import BaseModel, idModel, uriModel, codeModel, booleanModel, IdentifierModel, ReferenceModel, stringModel, ExtensionModel, PeriodModel, positiveIntModel, CodeableConceptModel, dateModel +from healthchain.fhir_resources.base_resources import ( + idModel, + uriModel, + codeModel, + booleanModel, + IdentifierModel, + ReferenceModel, + stringModel, + ExtensionModel, + PeriodModel, + positiveIntModel, + CodeableConceptModel, + dateModel, +) class AddressModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - use_field: codeModel = Field(default=None, alias="use", description="The purpose of this address.") - type_field: codeModel = Field(default=None, alias="type", description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.") - text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.") - line_field: List[stringModel] = Field(default_factory=list, alias="line", description="This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.") - city_field: stringModel = Field(default=None, alias="city", description="The name of the city, town, suburb, village or other community or delivery center.") - district_field: stringModel = Field(default=None, alias="district", description="The name of the administrative area (county).") - state_field: stringModel = Field(default=None, alias="state", description="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).") - postalCode_field: stringModel = Field(default=None, alias="postalCode", description="A postal code designating a region defined by the postal service.") - country_field: stringModel = Field(default=None, alias="country", description="Country - a nation as commonly understood or generally accepted.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period when address was/is in use.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + use_field: codeModel = Field( + default=None, alias="use", description="The purpose of this address." + ) + type_field: codeModel = Field( + default=None, + alias="type", + description="Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.", + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.", + ) + line_field: List[stringModel] = Field( + default_factory=list, + alias="line", + description="This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.", + ) + city_field: stringModel = Field( + default=None, + alias="city", + description="The name of the city, town, suburb, village or other community or delivery center.", + ) + district_field: stringModel = Field( + default=None, + alias="district", + description="The name of the administrative area (county).", + ) + state_field: stringModel = Field( + default=None, + alias="state", + description="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).", + ) + postalCode_field: stringModel = Field( + default=None, + alias="postalCode", + description="A postal code designating a region defined by the postal service.", + ) + country_field: stringModel = Field( + default=None, + alias="country", + description="Country - a nation as commonly understood or generally accepted.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Time period when address was/is in use.", + ) class ContactPointModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - system_field: codeModel = Field(default=None, alias="system", description="Telecommunications form for contact point - what communications system is required to make use of the contact.") - value_field: stringModel = Field(default=None, alias="value", description="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).") - use_field: codeModel = Field(default=None, alias="use", description="Identifies the purpose for the contact point.") - rank_field: positiveIntModel = Field(default=None, alias="rank", description="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.") - period_field: PeriodModel = Field(default=None, alias="period", description="Time period when the contact point was/is in use.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + system_field: codeModel = Field( + default=None, + alias="system", + description="Telecommunications form for contact point - what communications system is required to make use of the contact.", + ) + value_field: stringModel = Field( + default=None, + alias="value", + description="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).", + ) + use_field: codeModel = Field( + default=None, + alias="use", + description="Identifies the purpose for the contact point.", + ) + rank_field: positiveIntModel = Field( + default=None, + alias="rank", + description="Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Time period when the contact point was/is in use.", + ) class HumanNameModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - use_field: codeModel = Field(default=None, alias="use", description="Identifies the purpose for this name.") - text_field: stringModel = Field(default=None, alias="text", description="Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.") - family_field: stringModel = Field(default=None, alias="family", description="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.") - given_field: List[stringModel] = Field(default_factory=list, alias="given", description="Given name.") - prefix_field: List[stringModel] = Field(default_factory=list, alias="prefix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.") - suffix_field: List[stringModel] = Field(default_factory=list, alias="suffix", description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.") - period_field: PeriodModel = Field(default=None, alias="period", description="Indicates the period of time when this name was valid for the named person.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + use_field: codeModel = Field( + default=None, alias="use", description="Identifies the purpose for this name." + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts.", + ) + family_field: stringModel = Field( + default=None, + alias="family", + description="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.", + ) + given_field: List[stringModel] = Field( + default_factory=list, alias="given", description="Given name." + ) + prefix_field: List[stringModel] = Field( + default_factory=list, + alias="prefix", + description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.", + ) + suffix_field: List[stringModel] = Field( + default_factory=list, + alias="suffix", + description="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Indicates the period of time when this name was valid for the named person.", + ) class Patient_LinkModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - other_field: ReferenceModel = Field(default=None, alias="other", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") - type_field: codeModel = Field(default=None, alias="type", description="The type of link between this patient resource and another patient resource.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + other_field: ReferenceModel = Field( + default=None, + alias="other", + description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.", + ) + type_field: codeModel = Field( + default=None, + alias="type", + description="The type of link between this patient resource and another patient resource.", + ) class Patient_ContactModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - relationship_field: List[CodeableConceptModel] = Field(default_factory=list, alias="relationship", description="The nature of the relationship between the patient and the contact person.") - name_field: HumanNameModel = Field(default=None, alias="name", description="A name associated with the contact person.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the person, e.g. a telephone number or an email address.") - address_field: AddressModel = Field(default=None, alias="address", description="Address for the contact person.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.") - organization_field: ReferenceModel = Field(default=None, alias="organization", description="Organization on behalf of which the contact is acting or for which the contact is working.") - period_field: PeriodModel = Field(default=None, alias="period", description="The period during which this contact person or organization is valid to be contacted relating to this patient.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + relationship_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="relationship", + description="The nature of the relationship between the patient and the contact person.", + ) + name_field: HumanNameModel = Field( + default=None, + alias="name", + description="A name associated with the contact person.", + ) + telecom_field: List[ContactPointModel] = Field( + default_factory=list, + alias="telecom", + description="A contact detail for the person, e.g. a telephone number or an email address.", + ) + address_field: AddressModel = Field( + default=None, alias="address", description="Address for the contact person." + ) + gender_field: codeModel = Field( + default=None, + alias="gender", + description="Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes.", + ) + organization_field: ReferenceModel = Field( + default=None, + alias="organization", + description="Organization on behalf of which the contact is acting or for which the contact is working.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="The period during which this contact person or organization is valid to be contacted relating to this patient.", + ) class Patient_CommunicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + language_field: CodeableConceptModel = Field( + default=None, + alias="language", + description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.", + ) + preferred_field: booleanModel = Field( + default=None, + alias="preferred", + description="Indicates whether or not the patient prefers this language (over other languages he masters up a certain level).", + ) class PatientModel(BaseModel): - resourceType: str = "Patient" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + resourceType: str = "Patient" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) # NOTE: The text field has been switched to stringModel rather than NarrativeField for simplicity. - text_field: stringModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + text_field: stringModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier for this patient.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this patient record is in active use. ") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="A name associated with the individual.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.") - birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the individual.") - address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="An address for the individual.") - maritalStatus_field: CodeableConceptModel = Field(default=None, alias="maritalStatus", description="This field contains a patient's most recent marital (civil) status.") + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="An identifier for this patient.", + ) + active_field: booleanModel = Field( + default=None, + alias="active", + description="Whether this patient record is in active use. ", + ) + name_field: List[HumanNameModel] = Field( + default_factory=list, + alias="name", + description="A name associated with the individual.", + ) + telecom_field: List[ContactPointModel] = Field( + default_factory=list, + alias="telecom", + description="A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.", + ) + gender_field: codeModel = Field( + default=None, + alias="gender", + description="Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.", + ) + birthDate_field: dateModel = Field( + default=None, + alias="birthDate", + description="The date of birth for the individual.", + ) + address_field: List[AddressModel] = Field( + default_factory=list, + alias="address", + description="An address for the individual.", + ) + maritalStatus_field: CodeableConceptModel = Field( + default=None, + alias="maritalStatus", + description="This field contains a patient's most recent marital (civil) status.", + ) # photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the patient.") - contact_field: List[Patient_ContactModel] = Field(default_factory=list, alias="contact", description="A contact party (e.g. guardian, partner, friend) for the patient.") - communication_field: List[Patient_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the patient about his or her health.") - generalPractitioner_field: List[ReferenceModel] = Field(default_factory=list, alias="generalPractitioner", description="Patient's nominated care provider.") - managingOrganization_field: ReferenceModel = Field(default=None, alias="managingOrganization", description="Organization that is the custodian of the patient record.") - link_field: List[Patient_LinkModel] = Field(default_factory=list, alias="link", description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.") + contact_field: List[Patient_ContactModel] = Field( + default_factory=list, + alias="contact", + description="A contact party (e.g. guardian, partner, friend) for the patient.", + ) + communication_field: List[Patient_CommunicationModel] = Field( + default_factory=list, + alias="communication", + description="A language which may be used to communicate with the patient about his or her health.", + ) + generalPractitioner_field: List[ReferenceModel] = Field( + default_factory=list, + alias="generalPractitioner", + description="Patient's nominated care provider.", + ) + managingOrganization_field: ReferenceModel = Field( + default=None, + alias="managingOrganization", + description="Organization that is the custodian of the patient record.", + ) + link_field: List[Patient_LinkModel] = Field( + default_factory=list, + alias="link", + description="Link to a Patient or RelatedPerson resource that concerns the same actual individual.", + ) diff --git a/healthchain/fhir_resources/practitioner_resources.py b/healthchain/fhir_resources/practitioner_resources.py index 903686e..10a0e42 100644 --- a/healthchain/fhir_resources/practitioner_resources.py +++ b/healthchain/fhir_resources/practitioner_resources.py @@ -1,44 +1,168 @@ from pydantic import Field, BaseModel from typing import List -from healthchain.fhir_resources.base_resources import BaseModel, idModel, uriModel, codeModel, booleanModel, IdentifierModel, ReferenceModel, stringModel, ExtensionModel, PeriodModel, CodeableConceptModel, dateModel -from healthchain.fhir_resources.patient_resources import HumanNameModel, ContactPointModel, AddressModel +from healthchain.fhir_resources.base_resources import ( + idModel, + uriModel, + codeModel, + booleanModel, + IdentifierModel, + ReferenceModel, + stringModel, + ExtensionModel, + PeriodModel, + CodeableConceptModel, + dateModel, +) +from healthchain.fhir_resources.patient_resources import ( + HumanNameModel, + ContactPointModel, + AddressModel, +) class Practitioner_QualificationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person's qualification.") - code_field: CodeableConceptModel = Field(default=None, alias="code", description="Coded representation of the qualification.") - period_field: PeriodModel = Field(default=None, alias="period", description="Period during which the qualification is valid.") - issuer_field: ReferenceModel = Field(default=None, alias="issuer", description="Organization that regulates and issues the qualification.") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="An identifier that applies to this person's qualification.", + ) + code_field: CodeableConceptModel = Field( + default=None, + alias="code", + description="Coded representation of the qualification.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Period during which the qualification is valid.", + ) + issuer_field: ReferenceModel = Field( + default=None, + alias="issuer", + description="Organization that regulates and issues the qualification.", + ) class Practitioner_CommunicationModel(BaseModel): - id_field: stringModel = Field(default=None, alias="id", description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - language_field: CodeableConceptModel = Field(default=None, alias="language", description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.") - preferred_field: booleanModel = Field(default=None, alias="preferred", description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).") + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + language_field: CodeableConceptModel = Field( + default=None, + alias="language", + description="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. en for English, or en-US for American English versus en-AU for Australian English.", + ) + preferred_field: booleanModel = Field( + default=None, + alias="preferred", + description="Indicates whether or not the person prefers this language (over other languages he masters up a certain level).", + ) class PractitionerModel(BaseModel): - resourceType: str = "Practitioner" - id_field: idModel = Field(default=None, alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.") + resourceType: str = "Practitioner" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") - implicitRules_field: uriModel = Field(default=None, alias="implicitRules", description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.") - language_field: codeModel = Field(default=None, alias="language", description="The base language in which the resource is written.") - text_field: stringModel = Field(default=None, alias="text", description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.") + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") - extension_field: List[ExtensionModel] = Field(default_factory=list, alias="extension", description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.") - modifierExtension_field: List[ExtensionModel] = Field(default_factory=list, alias="modifierExtension", description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.") - identifier_field: List[IdentifierModel] = Field(default_factory=list, alias="identifier", description="An identifier that applies to this person in this role.") - active_field: booleanModel = Field(default=None, alias="active", description="Whether this practitioner's record is in active use.") - name_field: List[HumanNameModel] = Field(default_factory=list, alias="name", description="The name(s) associated with the practitioner.") - telecom_field: List[ContactPointModel] = Field(default_factory=list, alias="telecom", description="A contact detail for the practitioner, e.g. a telephone number or an email address.") - gender_field: codeModel = Field(default=None, alias="gender", description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.") - birthDate_field: dateModel = Field(default=None, alias="birthDate", description="The date of birth for the practitioner.") - address_field: List[AddressModel] = Field(default_factory=list, alias="address", description="Address(es) of the practitioner that are not role specific (typically home address). ") + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="An identifier that applies to this person in this role.", + ) + active_field: booleanModel = Field( + default=None, + alias="active", + description="Whether this practitioner's record is in active use.", + ) + name_field: List[HumanNameModel] = Field( + default_factory=list, + alias="name", + description="The name(s) associated with the practitioner.", + ) + telecom_field: List[ContactPointModel] = Field( + default_factory=list, + alias="telecom", + description="A contact detail for the practitioner, e.g. a telephone number or an email address.", + ) + gender_field: codeModel = Field( + default=None, + alias="gender", + description="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.", + ) + birthDate_field: dateModel = Field( + default=None, + alias="birthDate", + description="The date of birth for the practitioner.", + ) + address_field: List[AddressModel] = Field( + default_factory=list, + alias="address", + description="Address(es) of the practitioner that are not role specific (typically home address). ", + ) # photo_field: List[AttachmentModel] = Field(default_factory=list, alias="photo", description="Image of the person.") - qualification_field: List[Practitioner_QualificationModel] = Field(default_factory=list, alias="qualification", description="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.") - communication_field: List[Practitioner_CommunicationModel] = Field(default_factory=list, alias="communication", description="A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.") + qualification_field: List[Practitioner_QualificationModel] = Field( + default_factory=list, + alias="qualification", + description="The official qualifications, certifications, accreditations, training, licenses (and other types of educations/skills/capabilities) that authorize or otherwise pertain to the provision of care by the practitioner.", + ) + communication_field: List[Practitioner_CommunicationModel] = Field( + default_factory=list, + alias="communication", + description="A language which may be used to communicate with the practitioner, often for correspondence/administrative purposes.", + ) diff --git a/healthchain/fhir_resources/resource_registry.py b/healthchain/fhir_resources/resource_registry.py index 356e88b..cb689cf 100644 --- a/healthchain/fhir_resources/resource_registry.py +++ b/healthchain/fhir_resources/resource_registry.py @@ -1,5 +1,6 @@ from typing import Enum + class ImplementedResourceRegistry(Enum): Bundle: str = "Bundle" Encounter: str = "Encounter" @@ -7,7 +8,6 @@ class ImplementedResourceRegistry(Enum): NutritionOrder: str = "NutritionOrder" Patient: str = "Patient" Practitioner: str = "Practitioner" - class UnimplementedResourceRegistry(Enum): diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py index 7d8e242..d46da1f 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py @@ -1,48 +1,61 @@ from pydantic import ValidationError import pytest from pydantic import BaseModel -from healthchain.fhir_resources.base_resources import booleanModel, canonicalModel, codeModel +from healthchain.fhir_resources.base_resources import ( + booleanModel, + canonicalModel, + codeModel, +) class booleanTestModel(BaseModel): my_bool: booleanModel + def test_boolean_valid(): data = {"my_bool": "true"} result = booleanTestModel(**data) assert result.my_bool == "true" + def test_boolean_invalid(): data = {"my_bool": "invalid"} with pytest.raises(ValidationError): booleanTestModel(**data) + class canonicalTestModel(BaseModel): my_canonical: canonicalModel + def test_canonical_valid(): data = {"my_canonical": "https://example.com"} result = canonicalTestModel(**data) assert result.my_canonical == "https://example.com" + def test_canonical_invalid(): data = {"my_canonical": "invalid url"} with pytest.raises(ValidationError): canonicalTestModel(**data) + class codeTestModel(BaseModel): my_code: codeModel + def test_code_valid(): data = {"my_code": "ABC123"} result = codeTestModel(**data) assert result.my_code == "ABC123" + def test_code_invalid(): data = {"my_code": "invalid code"} with pytest.raises(ValidationError): codeTestModel(**data) + # Run the tests if __name__ == "__main__": - pytest.main() \ No newline at end of file + pytest.main() diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py b/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py index 5cacbdb..b29c0de 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_patient.py @@ -1,40 +1,33 @@ import pytest -from healthchain.fhir_resources.patient_resources import PatientModel, HumanNameModel, ContactPointModel, AddressModel +from healthchain.fhir_resources.patient_resources import ( + PatientModel, + HumanNameModel, + ContactPointModel, + AddressModel, +) -#TODO: Refactor pytest fixtures +# TODO: Refactor pytest fixtures def test_PatientModel(): data = { "resourceType": "Patient", - "name": [ - { - "family": "Doe", - "given": ["John"], - "prefix": ["Mr."] - } - ], + "name": [{"family": "Doe", "given": ["John"], "prefix": ["Mr."]}], "birthDate": "1980-01-01", - "gender": "Male" + "gender": "Male", } patient = PatientModel(**data) patient = patient.model_dump(by_alias=True) - assert patient['resourceType'] == "Patient" - assert patient['name'][0]['given'] == ["John"] - assert patient['birthDate'] == "1980-01-01" - assert patient['gender'] == "Male" + assert patient["resourceType"] == "Patient" + assert patient["name"][0]["given"] == ["John"] + assert patient["birthDate"] == "1980-01-01" + assert patient["gender"] == "Male" def test_PatientModel_invalid(): # Fails due to invalid date format data = { "resourceType": "Patient", - "name": [ - { - "family": "Doe", - "given": ["John"], - "prefix": ["Mr."] - } - ], + "name": [{"family": "Doe", "given": ["John"], "prefix": ["Mr."]}], "birthDate": "1980-00-00", } with pytest.raises(ValueError): @@ -42,38 +35,26 @@ def test_PatientModel_invalid(): def test_HumanNameModel(): - data = { - "family": "Doe", - "given": ["John"], - "prefix": ["Mr."] - } + data = {"family": "Doe", "given": ["John"], "prefix": ["Mr."]} name = HumanNameModel(**data) name = name.model_dump(by_alias=True) - assert name['family'] == "Doe" - assert name['given'] == ["John"] + assert name["family"] == "Doe" + assert name["given"] == ["John"] def test_HumanNameModel_invalid(): # Fails due to invalid data type (int instead of str) for given - data = { - "family": "Doe", - "given": [15], - "prefix": ["Mr."] - } + data = {"family": "Doe", "given": [15], "prefix": ["Mr."]} with pytest.raises(ValueError): HumanNameModel(**data) def test_ContactPointModel(): - data = { - "system": "phone", - "value": "1234567890", - "use": "home" - } + data = {"system": "phone", "value": "1234567890", "use": "home"} contact = ContactPointModel(**data) contact = contact.model_dump(by_alias=True) - assert contact['system'] == "phone" - assert contact['value'] == "1234567890" + assert contact["system"] == "phone" + assert contact["value"] == "1234567890" def test_AddressModel(): @@ -86,14 +67,13 @@ def test_AddressModel(): "district": "Any County", "state": "NY", "postalCode": "12345", - "country": "US" + "country": "US", } address = AddressModel(**data) address = address.model_dump(by_alias=True) - assert address['use'] == "home" - assert address['line'] == ["Apt 1"] - assert address['city'] == "Anytown" - assert address['state'] == "NY" - assert address['postalCode'] == "12345" - assert address['country'] == "US" - + assert address["use"] == "home" + assert address["line"] == ["Apt 1"] + assert address["city"] == "Anytown" + assert address["state"] == "NY" + assert address["postalCode"] == "12345" + assert address["country"] == "US" diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py b/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py index 26537ee..ec5939b 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_practitioner.py @@ -1,33 +1,24 @@ -import pytest -from healthchain.fhir_resources.practitioner_resources import PractitionerModel, Practitioner_CommunicationModel, Practitioner_QualificationModel +from healthchain.fhir_resources.practitioner_resources import PractitionerModel + def test_PractitionerModel(): data = { "resourceType": "Practitioner", - "name": [ - { - "family": "Doe", - "given": ["John"], - "prefix": ["Mr."] - } - ], + "name": [{"family": "Doe", "given": ["John"], "prefix": ["Mr."]}], "birthDate": "1980-01-01", - "qualification":[ + "qualification": [ { "code": { "coding": [ { "system": "http://example.org", "code": "12345", - "display": "Qualification 1" + "display": "Qualification 1", } ], - "text": "Qualification 1" + "text": "Qualification 1", }, - "period": { - "start": "2010-01-01", - "end": "2015-01-01" - } + "period": {"start": "2010-01-01", "end": "2015-01-01"}, } ], "communication": [ @@ -37,19 +28,18 @@ def test_PractitionerModel(): { "system": "http://example.org", "code": "en", - "display": "English" + "display": "English", } ], - "text": "English" + "text": "English", } } - ] + ], } practitioner = PractitionerModel(**data) practitioner = practitioner.model_dump(by_alias=True) - assert practitioner['resourceType'] == "Practitioner" - assert practitioner['name'][0]['given'] == ["John"] - assert practitioner['birthDate'] == "1980-01-01" - assert practitioner['qualification'][0]['code']['coding'][0]['code'] == "12345" - + assert practitioner["resourceType"] == "Practitioner" + assert practitioner["name"][0]["given"] == ["John"] + assert practitioner["birthDate"] == "1980-01-01" + assert practitioner["qualification"][0]["code"]["coding"][0]["code"] == "12345" diff --git a/tests/generators_tests/test_encounter_generators.py b/tests/generators_tests/test_encounter_generators.py index 98b703a..cfc4575 100644 --- a/tests/generators_tests/test_encounter_generators.py +++ b/tests/generators_tests/test_encounter_generators.py @@ -1,28 +1,43 @@ -from healthchain.fhir_resources.encounter_resources import EncounterModel -from healthchain.data_generator.encounter_generator import ClassGenerator, EncounterTypeGenerator, EncounterGenerator +from healthchain.data_generator.encounter_generator import ( + ClassGenerator, + EncounterTypeGenerator, + EncounterGenerator, +) def test_ClassGenerator(): patient_class = ClassGenerator.generate() - assert patient_class.coding_field[0].system_field == "http://terminology.hl7.org/CodeSystem/v3-ActCode" - assert patient_class.coding_field[0].code_field in ('IMP', 'AMB') - assert patient_class.coding_field[0].display_field in ('inpatient', 'ambulatory') + assert ( + patient_class.coding_field[0].system_field + == "http://terminology.hl7.org/CodeSystem/v3-ActCode" + ) + assert patient_class.coding_field[0].code_field in ("IMP", "AMB") + assert patient_class.coding_field[0].display_field in ("inpatient", "ambulatory") def test_EncounterTypeGenerator(): encounter_type = EncounterTypeGenerator.generate() - assert encounter_type.coding_field[0].system_field == "http://terminology.hl7.org/CodeSystem/v3-ActCode" - assert encounter_type.coding_field[0].code_field in ('ADMS', 'EMER') - assert encounter_type.coding_field[0].display_field in ('admission', 'emergency') + assert ( + encounter_type.coding_field[0].system_field + == "http://terminology.hl7.org/CodeSystem/v3-ActCode" + ) + assert encounter_type.coding_field[0].code_field in ("ADMS", "EMER") + assert encounter_type.coding_field[0].display_field in ("admission", "emergency") def test_EncounterModel(): encounter = EncounterGenerator.generate(patient_reference="Patient/123") - + assert encounter.resourceType == "Encounter" assert encounter.id_field is not None assert encounter.text_field is not None - assert encounter.status_field in ('planned', 'in-progress', 'on-hold', 'discharged', 'cancelled') + assert encounter.status_field in ( + "planned", + "in-progress", + "on-hold", + "discharged", + "cancelled", + ) assert encounter.class_field is not None assert encounter.type_field is not None assert encounter.subject_field is not None diff --git a/tests/generators_tests/test_patient_generators.py b/tests/generators_tests/test_patient_generators.py index fd4a7af..bc90501 100644 --- a/tests/generators_tests/test_patient_generators.py +++ b/tests/generators_tests/test_patient_generators.py @@ -1,4 +1,7 @@ -from healthchain.data_generator.patient_generator import PatientGenerator, HumanNameGenerator +from healthchain.data_generator.patient_generator import ( + PatientGenerator, + HumanNameGenerator, +) def test_human_name_generator(): diff --git a/tests/generators_tests/test_practitioner_generators.py b/tests/generators_tests/test_practitioner_generators.py index 139d2a9..43c578e 100644 --- a/tests/generators_tests/test_practitioner_generators.py +++ b/tests/generators_tests/test_practitioner_generators.py @@ -1,4 +1,9 @@ -from healthchain.data_generator.practitioner_generator import PractitionerGenerator, Practitioner_QualificationGenerator, Practitioner_CommunicationGenerator +from healthchain.data_generator.practitioner_generator import ( + PractitionerGenerator, + Practitioner_QualificationGenerator, + Practitioner_CommunicationGenerator, +) + def test_practitioner_data_generator(): # Create an instance of the PractitionerDataGenerator @@ -60,4 +65,4 @@ def test_practitioner_communication_generator(): # Assert that the communication has the expected pydantic fields assert communication.id_field is not None assert communication.language_field is not None - assert communication.preferred_field is not None \ No newline at end of file + assert communication.preferred_field is not None From 61d3a783dc3e314b44d898f3e3ea3857fa44881f Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Sun, 12 May 2024 17:08:34 +0100 Subject: [PATCH 14/24] removed pydantic generator --- .../data_generator/patient_generator.py | 14 +- .../data_generator/practitioner_generator.py | 43 +++--- .../data_generator/pydantic_generator.py | 133 ------------------ 3 files changed, 20 insertions(+), 170 deletions(-) delete mode 100644 healthchain/data_generator/pydantic_generator.py diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index 66fcb36..d78a89b 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -21,7 +21,6 @@ ) from faker import Faker -import random faker = Faker() @@ -44,14 +43,10 @@ class ContactPointGenerator(BaseGenerator): @staticmethod def generate(): return ContactPointModel( - system=codeModel( - faker.random_element( - elements=("phone", "fax", "email", "pager", "url", "sms", "other") - ) - ), + system=codeModel(faker.random_element(elements=("phone", "fax"))), value=stringModel(faker.phone_number()), use=codeModel(faker.random_element(elements=("home", "work"))), - rank=positiveIntModel(random.randint(1, 10)), + rank=positiveIntModel(1), period=generator_registry.get("PeriodGenerator").generate(), ) @@ -122,10 +117,7 @@ def generate(): id=generator_registry.get("idGenerator").generate(), active=generator_registry.get("booleanGenerator").generate(), name=[generator_registry.get("HumanNameGenerator").generate()], - telecom=[ - generator_registry.get("ContactPointGenerator").generate() - for _ in range(1) - ], ## List of length 1 for simplicity + telecom=[generator_registry.get("ContactPointGenerator").generate()], gender=codeModel( faker.random_element(elements=("male", "female", "other", "unknown")) ), diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py index dd64a11..2e468dc 100644 --- a/healthchain/data_generator/practitioner_generator.py +++ b/healthchain/data_generator/practitioner_generator.py @@ -19,8 +19,6 @@ from faker import Faker -import random - faker = Faker() @@ -58,8 +56,6 @@ def generate(): @register_generator class Practitioner_QualificationGenerator(BaseGenerator): - # TODO: Refactor the value set to live with the resources - @staticmethod def generate(): return Practitioner_QualificationModel( @@ -73,35 +69,30 @@ def generate(): @register_generator class LanguageGenerator: - language_value_dict = { - "en": "English", - "es": "Spanish", - "fr": "French", - "de": "German", - "it": "Italian", - "ja": "Japanese", - "ko": "Korean", - "zh": "Chinese", - "ru": "Russian", - "ar": "Arabic", - } - @staticmethod def generate(): - language = faker.random_element( - elements=LanguageGenerator.language_value_dict.keys() - ) + language_value_dict = { + "en": "English", + "es": "Spanish", + "fr": "French", + "de": "German", + "it": "Italian", + "ja": "Japanese", + "ko": "Korean", + "zh": "Chinese", + "ru": "Russian", + "ar": "Arabic", + } + language = faker.random_element(elements=language_value_dict.keys()) return CodeableConceptModel( coding=[ CodingModel( system=uriModel("http://terminology.hl7.org/CodeSystem/languages"), code=codeModel(language), - display=stringModel( - LanguageGenerator.language_value_dict.get(language) - ), + display=stringModel(language_value_dict.get(language)), ) ], - text=stringModel(LanguageGenerator.language_value_dict.get(language)), + text=stringModel(language_value_dict.get(language)), ) @@ -112,7 +103,7 @@ def generate(): return Practitioner_CommunicationModel( id=stringModel(faker.uuid4()), language=generator_registry.get("LanguageGenerator").generate(), - preferred=booleanModel(random.choice(["true", "false"])), + preferred=booleanModel("true"), ) @@ -122,7 +113,7 @@ class PractitionerGenerator(BaseGenerator): def generate(): return PractitionerModel( id=stringModel(faker.uuid4()), - active=booleanModel(random.choice(["true", "false"])), + active=booleanModel("true"), name=[generator_registry.get("HumanNameGenerator").generate()], telecom=[generator_registry.get("ContactPointGenerator").generate()], gender=codeModel( diff --git a/healthchain/data_generator/pydantic_generator.py b/healthchain/data_generator/pydantic_generator.py deleted file mode 100644 index 0ceb155..0000000 --- a/healthchain/data_generator/pydantic_generator.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, List -import json - - -# Function to load JSON data from a file -def load_data(file_path: str) -> Dict: - try: - with open(file_path, "r") as file: - return json.load(file) - except FileNotFoundError: - print("File not found.") - raise - except json.JSONDecodeError: - print("Failed to decode JSON.") - raise - - -# Function to write a single Pydantic model based on the schema information -def write_model(file, name: str, model_info: Dict) -> Dict[str, List[str]]: - enum_items: dict = {} - enum_list: list = [] - if "oneOf" in model_info: - file.write(f"class {name}Model(Enum):\n") - for item in model_info["oneOf"]: - if "$ref" in item: - name = item["$ref"].split("/")[-1] - file.write(f' {name}: stringModel = "{item["$ref"]}"\n') - return enum_items - - if "properties" in model_info: - file.write(f"class {name}Model(BaseModel):\n") - for prop_name, prop_info in model_info["properties"].items(): - if prop_name.startswith("_"): - continue - prop_description = ( - prop_info.get("description", "") - .replace('"', "") - .split("\n")[0] - .split("\r")[0] - ) - write_field(file, prop_name, prop_info, prop_description, name) - if "enum" in prop_info: - enum_items = prop_info["enum"] - enum_items = [str(item) for item in enum_items] - enum_list.append({f"{name}_{prop_name}": enum_items}) - elif "pattern" in model_info: - pydantic_type = None - pattern = model_info.get("pattern") - description = ( - model_info.get("description").replace('"', "").split("\n")[0].split("\r")[0] - ) - field_type = model_info.get("type") - if field_type == "string": - pydantic_type = "str" - elif field_type == "integer": - pydantic_type = "int" - elif field_type == "number": - pydantic_type = "float" - else: - pydantic_type = "str" - file.write(f"class {name}Model(BaseModel):\n") - file.write(f" {name}: {pydantic_type} = Field(pattern=r'{pattern}')\n\n") - file.write(" class Config:\n") - file.write(" schema_extra = {\n") - file.write(f' "description": "{description}"\n') - file.write(" }\n\n") - - file.write("\n") - - return enum_list - - -# Helper function to handle the writing of model fields -def write_field( - file, prop_name: str, prop_info: Dict, prop_description: str, name: str -): - if "$ref" in prop_info: - ref_model = prop_info["$ref"].split("/")[-1] - if ref_model == "base64Binary": - ref_model = "string" - file.write( - f' {prop_name}_field: {ref_model}Model = Field(default=None, alias="{prop_name}", description="{prop_description}")\n' - ) - elif "type" in prop_info and "items" in prop_info and "$ref" in prop_info["items"]: - item_model = prop_info["items"]["$ref"].split("/")[-1] - file.write( - f' {prop_name}_field: List[{item_model}Model] = Field(default_factory=list, alias="{prop_name}", description="{prop_description}")\n' - ) - elif "enum" in prop_info: - file.write( - f' {name}_{prop_name}_field: {prop_name}Model = Field(..., alias="{prop_name}", description="{prop_description}")\n' - ) - elif "const" in prop_info: - file.write(f' {prop_name}: str = "{prop_info["const"]}"\n') - - -# Generate all Pydantic models from the schema -def generate_pydantic_models(schema: Dict[str, Any], output_file: str): - with open(output_file, "w") as file: - enum_list_total = [] - file.write("from __future__ import annotations\n") - file.write("from pydantic import BaseModel, Field\n") - file.write("from typing import List, Optional\n") - file.write("from enum import Enum\n\n") - for model_name, model_info in schema.items(): - if model_name != "Base": - enum_list = write_model(file, model_name, model_info) - enum_list_total.extend(enum_list) - - # TODO: Need to keep a global list of enums to avoid duplicates - for enum_item in enum_list_total: - name = list(enum_item.keys())[0] - file.write(f"class {name}(Enum):\n") - enum_item[name] - # for item in enum_items: - ## TODO: Handle special characters in item names - # file.write(f' {item.replace("-", "_")} = "{item}"\n') - file.write(" pass\n\n") - file.write("\n") - - file.write("HumanNameModel.model_rebuild()\n") - - -# Main execution flow -if __name__ == "__main__": - data: dict = load_data("../data/fhir.schema.json") - definitions = data.get("definitions", {}) - generate_pydantic_models(definitions, "src/pydantic_models.py") - print("Pydantic models generated successfully!") - - -class MyEmptyClass: - pass From 28562b5aca4246797028d8e0a13446bc177d52c2 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Sun, 12 May 2024 17:37:13 +0100 Subject: [PATCH 15/24] fix errors --- .../data_generator/encounter_generator.py | 17 ++++++----------- .../test_fhir_resources_base.py | 3 +++ .../test_encounter_generators.py | 8 ++------ 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/healthchain/data_generator/encounter_generator.py b/healthchain/data_generator/encounter_generator.py index 4a4d479..807d455 100644 --- a/healthchain/data_generator/encounter_generator.py +++ b/healthchain/data_generator/encounter_generator.py @@ -32,12 +32,12 @@ def generate(): class EncounterTypeGenerator(BaseGenerator): @staticmethod def generate(): - encounter_type_mapping = {"ADMS": "admission", "EMER": "emergency"} - encounter_type = faker.random_element(elements=("ADMS", "EMER")) + encounter_type_mapping = {"11429006": "consultation", "50849002": "emergency"} + encounter_type = faker.random_element(elements=("11429006", "50849002")) return CodeableConceptModel( coding=[ CodingModel( - system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + system="http://snomed.info/sct", code=encounter_type, display=encounter_type_mapping.get(encounter_type), ) @@ -49,16 +49,12 @@ def generate(): class EncounterPriorityGenerator(BaseGenerator): @staticmethod def generate(): - encounter_priority_mapping = { - "ALRT": "alert", - "CRIT": "critical", - "NRM": "normal", - } - encounter_priority = faker.random_element(elements=("ALRT", "CRIT", "NRM")) + encounter_priority_mapping = {"17621005": "normal", "24484000": "critical"} + encounter_priority = faker.random_element(elements=("17621005", "24484000")) return CodeableConceptModel( coding=[ CodingModel( - system="http://terminology.hl7.org/CodeSystem/v3-ActCode", + system="http://snomed.info/sct", code=encounter_priority, display=encounter_priority_mapping.get(encounter_priority), ) @@ -79,7 +75,6 @@ def generate(patient_reference: Optional[str]): "status": "generated", "div": '
Encounter with patient @example
', }, - # TODO: Move the elements to live with the resources status=faker.random_element( elements=( "planned", diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py index d46da1f..d7ef3d8 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py @@ -56,6 +56,9 @@ def test_code_invalid(): codeTestModel(**data) +# TODO: Add tests for the remaining base resources + + # Run the tests if __name__ == "__main__": pytest.main() diff --git a/tests/generators_tests/test_encounter_generators.py b/tests/generators_tests/test_encounter_generators.py index cfc4575..68f58cb 100644 --- a/tests/generators_tests/test_encounter_generators.py +++ b/tests/generators_tests/test_encounter_generators.py @@ -17,12 +17,8 @@ def test_ClassGenerator(): def test_EncounterTypeGenerator(): encounter_type = EncounterTypeGenerator.generate() - assert ( - encounter_type.coding_field[0].system_field - == "http://terminology.hl7.org/CodeSystem/v3-ActCode" - ) - assert encounter_type.coding_field[0].code_field in ("ADMS", "EMER") - assert encounter_type.coding_field[0].display_field in ("admission", "emergency") + assert encounter_type.coding_field[0].system_field == "http://snomed.info/sct" + assert encounter_type.coding_field[0].display_field in ("consultation", "emergency") def test_EncounterModel(): From dff0e9fb6a09b9d978bae01ccf90c7e6d7b42a5d Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Tue, 14 May 2024 16:53:45 +0100 Subject: [PATCH 16/24] modify generator registry object --- healthchain/data_generator/base_generators.py | 19 +++++++++++++++++-- .../test_fhir_resources_base.py | 5 ----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index a49c08b..60827d7 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -27,11 +27,26 @@ faker = Faker() -generator_registry = {} + +class Registry: + def __init__(self): + self.registry = {} + + def register(self, cls): + self.registry[cls.__name__] = cls + return cls + + def get(self, name): + if name not in self.registry: + raise ValueError(f"No generator registered for '{name}'") + return self.registry.get(name) + + +generator_registry = Registry() def register_generator(cls): - generator_registry[cls.__name__] = cls + generator_registry.register(cls) return cls diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py index d7ef3d8..83d9b23 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py @@ -57,8 +57,3 @@ def test_code_invalid(): # TODO: Add tests for the remaining base resources - - -# Run the tests -if __name__ == "__main__": - pytest.main() From 8a66e2b5e761de9f046676b0003e53c5131564c9 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Tue, 14 May 2024 17:53:51 +0100 Subject: [PATCH 17/24] commit condition resource --- .../data_generator/condition_generators.py | 159 +++++++++++++ healthchain/fhir_resources/base_resources.py | 87 +++++++ .../fhir_resources/condition_resources.py | 223 ++++++++++++++++++ .../test_condition_generators.py | 49 ++++ 4 files changed, 518 insertions(+) create mode 100644 healthchain/data_generator/condition_generators.py create mode 100644 healthchain/fhir_resources/condition_resources.py create mode 100644 tests/generators_tests/test_condition_generators.py diff --git a/healthchain/data_generator/condition_generators.py b/healthchain/data_generator/condition_generators.py new file mode 100644 index 0000000..72127f8 --- /dev/null +++ b/healthchain/data_generator/condition_generators.py @@ -0,0 +1,159 @@ +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from healthchain.fhir_resources.base_resources import ( + CodeableConceptModel, + CodingModel, + ReferenceModel, +) +from healthchain.fhir_resources.condition_resources import ( + ConditionModel, + Condition_StageModel, + Condition_ParticipantModel, +) +from typing import Optional +from faker import Faker + + +faker = Faker() + + +@register_generator +class clinicalStatusGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://terminology.hl7.org/CodeSystem/condition-clinical", + code=faker.random_element( + elements=("active", "recurrence", "inactive", "resolved") + ), + ) + ] + ) + + +@register_generator +class verificationStatusGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://terminology.hl7.org/CodeSystem/condition-ver-status", + code=faker.random_element(elements=("provisional", "confirmed")), + ) + ] + ) + + +@register_generator +class categoryGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://snomed.info/sct", + code=faker.random_element( + elements=("55607006", "404684003") + ), # Snomed Codes -> probably want to overwrite with template + ) + ] + ) + + +@register_generator +class ConditionStageGenerator(BaseGenerator): + @staticmethod + def generate(): + return Condition_StageModel( + summary=generator_registry.get("CodeableConceptGenerator").generate(), + assessment=generator_registry.get("ReferenceGenerator").generate(), + type=generator_registry.get("CodeableConceptGenerator").generate(), + ) + + +@register_generator +class severityGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://snomed.info/sct", + code=faker.random_element( + elements=("24484000", "6736007", "255604002") + ), + # TODO: Add display values for the codes + ) + ] + ) + + +@register_generator +class snomedCodeGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://snomed.info/sct", + code=faker.random_element(elements=("386661006")), + display=faker.random_element(elements=("Fever")), + ) + ] + ) + + +@register_generator +class bodySiteGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://snomed.info/sct", + code=faker.random_element(elements=("38266002")), + display=faker.random_element(elements=("Entire body as a whole")), + ) + ] + ) + + +@register_generator +class ConditionParticipantGenerator(BaseGenerator): + @staticmethod + def generate(): + return Condition_ParticipantModel( + type=generator_registry.get("CodeableConceptGenerator").generate(), + individual=generator_registry.get("ReferenceGenerator").generate(), + ) + + +@register_generator +class ConditionModelGenerator(BaseGenerator): + @staticmethod + def generate(subject_reference: Optional[str], encounter_reference: Optional[str]): + subject_reference = subject_reference or "Patient/123" + encounter_reference = encounter_reference or "Encounter/123" + return ConditionModel( + id=generator_registry.get("idGenerator").generate(), + clinicalStatus=generator_registry.get("clinicalStatusGenerator").generate(), + verificationStatus=generator_registry.get( + "verificationStatusGenerator" + ).generate(), + category=[generator_registry.get("categoryGenerator").generate()], + severity=generator_registry.get("severityGenerator").generate(), + code=generator_registry.get("snomedCodeGenerator").generate(), + bodySite=[generator_registry.get("bodySiteGenerator").generate()], + subject=ReferenceModel(reference=subject_reference), + encounter=ReferenceModel(reference=encounter_reference), + onsetDateTime=generator_registry.get( + "dateGenerator" + ).generate(), ## Are there more plausible dates to use? + recordedDate=generator_registry.get("dateGenerator").generate(), + ) diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py index 742e596..d82e6dc 100644 --- a/healthchain/fhir_resources/base_resources.py +++ b/healthchain/fhir_resources/base_resources.py @@ -253,3 +253,90 @@ class NarrativeModel(BaseModel): alias="div", description="The actual narrative content, a stripped down version of XHTML.", ) + + +class AgeModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + value_field: decimalModel = Field( + default=None, + alias="value", + description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", + ) + # Age_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field( + default=None, alias="unit", description="A human-readable form of the unit." + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the system that provides the coded form of the unit.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A computer processable form of the unit in some unit representation system.", + ) + + +class QuantityModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + value_field: decimalModel = Field( + default=None, + alias="value", + description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", + ) + # Quantity_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field( + default=None, alias="unit", description="A human-readable form of the unit." + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the system that provides the coded form of the unit.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A computer processable form of the unit in some unit representation system.", + ) + + +class RangeModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + low_field: QuantityModel = Field( + default=None, + alias="low", + description="The low limit. The boundary is inclusive.", + ) + high_field: QuantityModel = Field( + default=None, + alias="high", + description="The high limit. The boundary is inclusive.", + ) diff --git a/healthchain/fhir_resources/condition_resources.py b/healthchain/fhir_resources/condition_resources.py new file mode 100644 index 0000000..617dc64 --- /dev/null +++ b/healthchain/fhir_resources/condition_resources.py @@ -0,0 +1,223 @@ +from pydantic import BaseModel, Field +from typing import List +from healthchain.fhir_resources.base_resources import ( + stringModel, + idModel, + uriModel, + codeModel, + ExtensionModel, + IdentifierModel, + CodeableConceptModel, + ReferenceModel, + PeriodModel, + dateTimeModel, + CodeableReferenceModel, + NarrativeModel, + AgeModel, + RangeModel, +) + + +class Condition_ParticipantModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + function_field: CodeableConceptModel = Field( + default=None, + alias="function", + description="Distinguishes the type of involvement of the actor in the activities related to the condition.", + ) + actor_field: ReferenceModel = Field( + default=None, + alias="actor", + description="Indicates who or what participated in the activities related to the condition.", + ) + + +class Condition_StageModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + summary_field: CodeableConceptModel = Field( + default=None, + alias="summary", + description="A simple summary of the stage such as Stage 3 or Early Onset. The determination of the stage is disease-specific, such as cancer, retinopathy of prematurity, kidney diseases, Alzheimer's, or Parkinson disease.", + ) + assessment_field: List[ReferenceModel] = Field( + default_factory=list, + alias="assessment", + description="Reference to a formal record of the evidence on which the staging assessment is based.", + ) + type_field: CodeableConceptModel = Field( + default=None, + alias="type", + description="The kind of staging, such as pathological or clinical staging.", + ) + + +class ConditionModel(BaseModel): + resourceType: str = "Condition" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) + # meta_field: MetaModel = Field( + # default=None, + # alias="meta", + # description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + # ) + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) + text_field: NarrativeModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) + # contained_field: List[ResourceListModel] = Field( + # default_factory=list, + # alias="contained", + # description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.", + # ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="Business identifiers assigned to this condition by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", + ) + clinicalStatus_field: CodeableConceptModel = Field( + default=None, + alias="clinicalStatus", + description="The clinical status of the condition.", + ) + verificationStatus_field: CodeableConceptModel = Field( + default=None, + alias="verificationStatus", + description="The verification status to support the clinical status of the condition. The verification status pertains to the condition, itself, not to any specific condition attribute.", + ) + category_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="category", + description="A category assigned to the condition.", + ) + severity_field: CodeableConceptModel = Field( + default=None, + alias="severity", + description="A subjective assessment of the severity of the condition as evaluated by the clinician.", + ) + code_field: CodeableConceptModel = Field( + default=None, + alias="code", + description="Identification of the condition, problem or diagnosis.", + ) + bodySite_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="bodySite", + description="The anatomical location where this condition manifests itself.", + ) + subject_field: ReferenceModel = Field( + default=None, + alias="subject", + description="Indicates the patient or group who the condition record is associated with.", + ) + encounter_field: ReferenceModel = Field( + default=None, + alias="encounter", + description="The Encounter during which this Condition was created or to which the creation of this record is tightly associated.", + ) + onsetAge_field: AgeModel = Field( + default=None, + alias="onsetAge", + description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.", + ) + onsetPeriod_field: PeriodModel = Field( + default=None, + alias="onsetPeriod", + description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.", + ) + onsetRange_field: RangeModel = Field( + default=None, + alias="onsetRange", + description="Estimated or actual date or date-time the condition began, in the opinion of the clinician.", + ) + abatementAge_field: AgeModel = Field( + default=None, + alias="abatementAge", + description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.", + ) + abatementPeriod_field: PeriodModel = Field( + default=None, + alias="abatementPeriod", + description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.", + ) + abatementRange_field: RangeModel = Field( + default=None, + alias="abatementRange", + description="The date or estimated date that the condition resolved or went into remission. This is called abatement because of the many overloaded connotations associated with remission or resolution - Some conditions, such as chronic conditions, are never really resolved, but they can abate.", + ) + recordedDate_field: dateTimeModel = Field( + default=None, + alias="recordedDate", + description="The recordedDate represents when this particular Condition record was created in the system, which is often a system-generated date.", + ) + participant_field: List[Condition_ParticipantModel] = Field( + default_factory=list, + alias="participant", + description="Indicates who or what participated in the activities related to the condition and how they were involved.", + ) + stage_field: List[Condition_StageModel] = Field( + default_factory=list, + alias="stage", + description="A simple summary of the stage such as Stage 3 or Early Onset. The determination of the stage is disease-specific, such as cancer, retinopathy of prematurity, kidney diseases, Alzheimer's, or Parkinson disease.", + ) + evidence_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="evidence", + description="Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition.", + ) + # note_field: List[AnnotationModel] = Field( + # default_factory=list, + # alias="note", + # description="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.", + # ) diff --git a/tests/generators_tests/test_condition_generators.py b/tests/generators_tests/test_condition_generators.py new file mode 100644 index 0000000..082024e --- /dev/null +++ b/tests/generators_tests/test_condition_generators.py @@ -0,0 +1,49 @@ +from healthchain.data_generator.condition_generators import ( + clinicalStatusGenerator, + verificationStatusGenerator, + categoryGenerator, + ConditionModelGenerator, +) + + +def test_clinicalStatusGenerator(): + clinical_status = clinicalStatusGenerator.generate() + assert ( + clinical_status.coding_field[0].system_field + == "http://terminology.hl7.org/CodeSystem/condition-clinical" + ) + assert clinical_status.coding_field[0].code_field in ( + "active", + "recurrence", + "inactive", + "resolved", + ) + + +def test_verificationStatusGenerator(): + verification_status = verificationStatusGenerator.generate() + assert ( + verification_status.coding_field[0].system_field + == "http://terminology.hl7.org/CodeSystem/condition-ver-status" + ) + assert verification_status.coding_field[0].code_field in ( + "provisional", + "confirmed", + ) + + +def test_categoryGenerator(): + category = categoryGenerator.generate() + assert category.coding_field[0].system_field == "http://snomed.info/sct" + assert category.coding_field[0].code_field in ("55607006", "404684003") + + +def test_ConditionModelGenerator(): + condition_model = ConditionModelGenerator.generate("Patient/456", "Encounter/789") + assert condition_model.resourceType == "Condition" + assert condition_model.subject_field.reference_field == "Patient/456" + assert condition_model.encounter_field.reference_field == "Encounter/789" + assert condition_model.id_field is not None + assert condition_model.subject_field is not None + assert condition_model.encounter_field is not None + assert condition_model.code_field is not None From 15ba690c19d916ca4398fd5a709a8ed84ac365b2 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Wed, 15 May 2024 00:17:43 +0100 Subject: [PATCH 18/24] add further resources --- .../medication_request_generators.py | 0 .../data_generator/procedure_generators.py | 53 +++ .../medication_request_resources.py | 380 ++++++++++++++++++ .../fhir_resources/procedure_resources.py | 284 +++++++++++++ .../fhir_resources/resource_registry.py | 4 +- .../test_procedure_generators.py | 12 + 6 files changed, 732 insertions(+), 1 deletion(-) create mode 100644 healthchain/data_generator/medication_request_generators.py create mode 100644 healthchain/data_generator/procedure_generators.py create mode 100644 healthchain/fhir_resources/medication_request_resources.py create mode 100644 healthchain/fhir_resources/procedure_resources.py create mode 100644 tests/generators_tests/test_procedure_generators.py diff --git a/healthchain/data_generator/medication_request_generators.py b/healthchain/data_generator/medication_request_generators.py new file mode 100644 index 0000000..e69de29 diff --git a/healthchain/data_generator/procedure_generators.py b/healthchain/data_generator/procedure_generators.py new file mode 100644 index 0000000..76c0390 --- /dev/null +++ b/healthchain/data_generator/procedure_generators.py @@ -0,0 +1,53 @@ +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from healthchain.fhir_resources.base_resources import ( + CodeableConceptModel, + CodingModel, + ReferenceModel, +) +from healthchain.fhir_resources.procedure_resources import ProcedureModel +from typing import Optional +from faker import Faker + + +faker = Faker() + + +@register_generator +class eventStatusGenerator(BaseGenerator): + @staticmethod + def generate(): + return faker.random_element(elements=("in-progress", "completed")) + + +@register_generator +class procedureSnomedCodeGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableConceptModel( + coding=[ + CodingModel( + system="http://snomed.info/sct", + code=faker.random_element(elements=("123456", "654321")), + ) + ] + ) + + +@register_generator +class ProcedureModelGenerator(BaseGenerator): + @staticmethod + def generate(subject_reference: Optional[str], encounter_reference: Optional[str]): + subject_reference = subject_reference or "Patient/123" + encounter_reference = encounter_reference or "Encounter/123" + return ProcedureModel( + id=generator_registry.get("idGenerator").generate(), + status=generator_registry.get("eventStatusGenerator").generate(), + code=generator_registry.get("procedureSnomedCodeGenerator").generate(), + subject=ReferenceModel(reference=subject_reference), + encounter=ReferenceModel(reference=encounter_reference), + occurrencePeriod=generator_registry.get("PeriodGenerator").generate(), + ) diff --git a/healthchain/fhir_resources/medication_request_resources.py b/healthchain/fhir_resources/medication_request_resources.py new file mode 100644 index 0000000..fa75163 --- /dev/null +++ b/healthchain/fhir_resources/medication_request_resources.py @@ -0,0 +1,380 @@ +from pydantic import BaseModel, Field +from typing import List +from healthchain.fhir_resources.base_resources import ( + stringModel, + idModel, + uriModel, + codeModel, + ExtensionModel, + IdentifierModel, + CodeableConceptModel, + ReferenceModel, + PeriodModel, + dateTimeModel, + CodeableReferenceModel, + NarrativeModel, + RangeModel, + booleanModel, + QuantityModel, + integerModel, +) + + +# TODO: Implement RAtio model +class Dosage_DoseAndRateModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + type_field: CodeableConceptModel = Field( + default=None, + alias="type", + description="The kind of dose or rate specified, for example, ordered or calculated.", + ) + doseRange_field: RangeModel = Field( + default=None, alias="doseRange", description="Amount of medication per dose." + ) + doseQuantity_field: QuantityModel = Field( + default=None, alias="doseQuantity", description="Amount of medication per dose." + ) + # rateRatio_field: RatioModel = Field( + # default=None, + # alias="rateRatio", + # description="Amount of medication per unit of time.", + # ) + rateRange_field: RangeModel = Field( + default=None, + alias="rateRange", + description="Amount of medication per unit of time.", + ) + rateQuantity_field: QuantityModel = Field( + default=None, + alias="rateQuantity", + description="Amount of medication per unit of time.", + ) + + +class DosageModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + sequence_field: integerModel = Field( + default=None, + alias="sequence", + description="Indicates the order in which the dosage instructions should be applied or interpreted.", + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="Free text dosage instructions e.g. SIG.", + ) + additionalInstruction_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="additionalInstruction", + description="Supplemental instructions to the patient on how to take the medication (e.g. with meals ortake half to one hour before food) or warnings for the patient about the medication (e.g. may cause drowsiness or avoid exposure of skin to direct sunlight or sunlamps).", + ) + patientInstruction_field: stringModel = Field( + default=None, + alias="patientInstruction", + description="Instructions in terms that are understood by the patient or consumer.", + ) + # timing_field: TimingModel = Field( + # default=None, + # alias="timing", + # description="When medication should be administered.", + # ) + asNeeded_field: booleanModel = Field( + default=None, + alias="asNeeded", + description="Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option).", + ) + asNeededFor_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="asNeededFor", + description="Indicates whether the Medication is only taken based on a precondition for taking the Medication (CodeableConcept).", + ) + site_field: CodeableConceptModel = Field( + default=None, alias="site", description="Body site to administer to." + ) + route_field: CodeableConceptModel = Field( + default=None, alias="route", description="How drug should enter body." + ) + method_field: CodeableConceptModel = Field( + default=None, + alias="method", + description="Technique for administering medication.", + ) + doseAndRate_field: List[Dosage_DoseAndRateModel] = Field( + default_factory=list, + alias="doseAndRate", + description="Depending on the resource,this is the amount of medication administered, to be administered or typical amount to be administered.", + ) + # maxDosePerPeriod_field: List[RatioModel] = Field( + # default_factory=list, + # alias="maxDosePerPeriod", + # description="Upper limit on medication per unit of time.", + # ) + maxDosePerAdministration_field: QuantityModel = Field( + default=None, + alias="maxDosePerAdministration", + description="Upper limit on medication per administration.", + ) + maxDosePerLifetime_field: QuantityModel = Field( + default=None, + alias="maxDosePerLifetime", + description="Upper limit on medication per lifetime of the patient.", + ) + + +class MedicationRequestModel(BaseModel): + resourceType_field: str = "MedicationRequest" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) + # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) + text_field: NarrativeModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) + # contained_field: List[ResourceListModel] = Field(default_factory=list, alias="contained", description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.") + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.", + ) + basedOn_field: List[ReferenceModel] = Field( + default_factory=list, + alias="basedOn", + description="A plan or request that is fulfilled in whole or in part by this medication request.", + ) + priorPrescription_field: ReferenceModel = Field( + default=None, + alias="priorPrescription", + description="Reference to an order/prescription that is being replaced by this MedicationRequest.", + ) + groupIdentifier_field: IdentifierModel = Field( + default=None, + alias="groupIdentifier", + description="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.", + ) + status_field: codeModel = Field( + default=None, + alias="status", + description="A code specifying the current state of the order. Generally, this will be active or completed state.", + ) + statusReason_field: CodeableConceptModel = Field( + default=None, + alias="statusReason", + description="Captures the reason for the current state of the MedicationRequest.", + ) + statusChanged_field: dateTimeModel = Field( + default=None, + alias="statusChanged", + description="The date (and perhaps time) when the status was changed.", + ) + intent_field: codeModel = Field( + default=None, + alias="intent", + description="Whether the request is a proposal, plan, or an original order.", + ) + category_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="category", + description="An arbitrary categorization or grouping of the medication request. It could be used for indicating where meds are intended to be administered, eg. in an inpatient setting or in a patient's home, or a legal category of the medication.", + ) + priority_field: codeModel = Field( + default=None, + alias="priority", + description="Indicates how quickly the Medication Request should be addressed with respect to other requests.", + ) + doNotPerform_field: booleanModel = Field( + default=None, + alias="doNotPerform", + description="If true, indicates that the provider is asking for the patient to either stop taking or to not start taking the specified medication. For example, the patient is taking an existing medication and the provider is changing their medication. They want to create two seperate requests: one to stop using the current medication and another to start the new medication.", + ) + medication_field: CodeableReferenceModel = Field( + default=None, + alias="medication", + description="Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications.", + ) + subject_field: ReferenceModel = Field( + default=None, + alias="subject", + description="The individual or group for whom the medication has been requested.", + ) + informationSource_field: List[ReferenceModel] = Field( + default_factory=list, + alias="informationSource", + description="The person or organization who provided the information about this request, if the source is someone other than the requestor. This is often used when the MedicationRequest is reported by another person.", + ) + encounter_field: ReferenceModel = Field( + default=None, + alias="encounter", + description="The Encounter during which this [x] was created or to which the creation of this record is tightly associated.", + ) + supportingInformation_field: List[ReferenceModel] = Field( + default_factory=list, + alias="supportingInformation", + description="Information to support fulfilling (i.e. dispensing or administering) of the medication, for example, patient height and weight, a MedicationStatement for the patient).", + ) + authoredOn_field: dateTimeModel = Field( + default=None, + alias="authoredOn", + description="The date (and perhaps time) when the prescription was initially written or authored on.", + ) + requester_field: ReferenceModel = Field( + default=None, + alias="requester", + description="The individual, organization, or device that initiated the request and has responsibility for its activation.", + ) + reported_field: booleanModel = Field( + default=None, + alias="reported", + description="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", + ) + performerType_field: CodeableConceptModel = Field( + default=None, + alias="performerType", + description="Indicates the type of performer of the administration of the medication.", + ) + performer_field: List[ReferenceModel] = Field( + default_factory=list, + alias="performer", + description="The specified desired performer of the medication treatment (e.g. the performer of the medication administration). For devices, this is the device that is intended to perform the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.", + ) + device_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="device", + description="The intended type of device that is to be used for the administration of the medication (for example, PCA Pump).", + ) + recorder_field: ReferenceModel = Field( + default=None, + alias="recorder", + description="The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.", + ) + reason_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="reason", + description="The reason or the indication for ordering or not ordering the medication.", + ) + courseOfTherapyType_field: CodeableConceptModel = Field( + default=None, + alias="courseOfTherapyType", + description="The description of the overall pattern of the administration of the medication to the patient.", + ) + insurance_field: List[ReferenceModel] = Field( + default_factory=list, + alias="insurance", + description="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.", + ) + # note_field: List[AnnotationModel] = Field(default_factory=list, alias="note", description="Extra information about the prescription that could not be conveyed by the other attributes.") + # renderedDosageInstruction_field: markdownModel = Field(default=None, alias="renderedDosageInstruction", description="The full representation of the dose of the medication included in all dosage instructions. To be used when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses.") + effectiveDosePeriod_field: PeriodModel = Field( + default=None, + alias="effectiveDosePeriod", + description="The period over which the medication is to be taken. Where there are multiple dosageInstruction lines (for example, tapering doses), this is the earliest date and the latest end date of the dosageInstructions.", + ) + dosageInstruction_field: List[DosageModel] = Field( + default_factory=list, + alias="dosageInstruction", + description="Specific instructions for how the medication is to be used by the patient.", + ) + # dispenseRequest_field: MedicationRequest_DispenseRequestModel = Field(default=None, alias="dispenseRequest", description="Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department.") + # substitution_field: MedicationRequest_SubstitutionModel = Field(default=None, alias="substitution", description="Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done.") + eventHistory_field: List[ReferenceModel] = Field( + default_factory=list, + alias="eventHistory", + description="Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.", + ) + + +{ + "resourceType": "MedicationRequest", + "id": "medrx002", + "text": { + "status": "generated", + "div": '

Generated Narrative: MedicationRequest

Resource MedicationRequest "medrx002"

identifier: id:\u00a012345\u00a0(use:\u00a0OFFICIAL)

status: active

intent: order

Medications

-Reference
*Medication/med0316: prescribed medication

subject: Patient/pat1: Donald Duck "Donald DUCK"

encounter: Encounter/f001: encounter that leads to this prescription

authoredOn: 2015-03-01

requester: Practitioner/f007: Patrick Pump "Simone HEPS"

Reasons

-Concept
*Essential hypertension (disorder) (SNOMED CT#59621000)

DosageInstructions

-SequenceText
*1Take one tablet daily as directed
', + }, + "identifier": [ + { + "use": "official", + "system": "http://www.bmc.nl/portal/prescriptions", + "value": "12345", + } + ], + "status": "active", + "intent": "order", + "medication": { + "reference": { + "reference": "Medication/med0316", + "display": "prescribed medication", + } + }, + "subject": {"reference": "Patient/pat1", "display": "Donald Duck"}, + "encounter": { + "reference": "Encounter/f001", + "display": "encounter that leads to this prescription", + }, + "authoredOn": "2015-03-01", + "requester": {"reference": "Practitioner/f007", "display": "Patrick Pump"}, + "reason": [ + { + "concept": { + "coding": [ + { + "system": "http://snomed.info/sct", + "code": "59621000", + "display": "Essential hypertension (disorder)", + } + ] + } + } + ], + "dosageInstruction": [{"sequence": 1, "text": "Take one tablet daily as directed"}], +} diff --git a/healthchain/fhir_resources/procedure_resources.py b/healthchain/fhir_resources/procedure_resources.py new file mode 100644 index 0000000..a19cbd9 --- /dev/null +++ b/healthchain/fhir_resources/procedure_resources.py @@ -0,0 +1,284 @@ +from pydantic import BaseModel, Field +from typing import List +from healthchain.fhir_resources.base_resources import ( + stringModel, + idModel, + uriModel, + codeModel, + ExtensionModel, + IdentifierModel, + CodeableConceptModel, + ReferenceModel, + PeriodModel, + dateTimeModel, + CodeableReferenceModel, + NarrativeModel, + AgeModel, + RangeModel, + canonicalModel, +) + + +class Procedure_PerformerModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + function_field: CodeableConceptModel = Field( + default=None, + alias="function", + description="Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist.", + ) + actor_field: ReferenceModel = Field( + default=None, + alias="actor", + description="Indicates who or what performed the procedure.", + ) + onBehalfOf_field: ReferenceModel = Field( + default=None, + alias="onBehalfOf", + description="The Organization the Patient, RelatedPerson, Device, CareTeam, and HealthcareService was acting on behalf of.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Time period during which the performer performed the procedure.", + ) + + +class Procedure_FocalDeviceModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + action_field: CodeableConceptModel = Field( + default=None, + alias="action", + description="The kind of change that happened to the device during the procedure.", + ) + manipulated_field: ReferenceModel = Field( + default=None, + alias="manipulated", + description="The device that was manipulated (changed) during the procedure.", + ) + + +class ProcedureModel(BaseModel): + resourceType: str = "Procedure" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) + # meta_field: MetaModel = Field( + # default=None, + # alias="meta", + # description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + # ) + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) + text_field: NarrativeModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) + # contained_field: List[ResourceListModel] = Field( + # default_factory=list, + # alias="contained", + # description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.", + # ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server.", + ) + instantiatesCanonical_field: List[canonicalModel] = Field( + default_factory=list, + alias="instantiatesCanonical", + description="The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.", + ) + instantiatesUri_field: List[uriModel] = Field( + default_factory=list, + alias="instantiatesUri", + description="The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure.", + ) + basedOn_field: List[ReferenceModel] = Field( + default_factory=list, + alias="basedOn", + description="A reference to a resource that contains details of the request for this procedure.", + ) + partOf_field: List[ReferenceModel] = Field( + default_factory=list, + alias="partOf", + description="A larger event of which this particular procedure is a component or step.", + ) + status_field: codeModel = Field( + default=None, + alias="status", + description="A code specifying the state of the procedure. Generally, this will be the in-progress or completed state.", + ) + statusReason_field: CodeableConceptModel = Field( + default=None, + alias="statusReason", + description="Captures the reason for the current state of the procedure.", + ) + category_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="category", + description="A code that classifies the procedure for searching, sorting and display purposes (e.g. Surgical Procedure).", + ) + code_field: CodeableConceptModel = Field( + default=None, + alias="code", + description="The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. Laparoscopic Appendectomy).", + ) + subject_field: ReferenceModel = Field( + default=None, + alias="subject", + description="On whom or on what the procedure was performed. This is usually an individual human, but can also be performed on animals, groups of humans or animals, organizations or practitioners (for licensing), locations or devices (for safety inspections or regulatory authorizations). If the actual focus of the procedure is different from the subject, the focus element specifies the actual focus of the procedure.", + ) + focus_field: ReferenceModel = Field( + default=None, + alias="focus", + description="Who is the target of the procedure when it is not the subject of record only. If focus is not present, then subject is the focus. If focus is present and the subject is one of the targets of the procedure, include subject as a focus as well. If focus is present and the subject is not included in focus, it implies that the procedure was only targeted on the focus. For example, when a caregiver is given education for a patient, the caregiver would be the focus and the procedure record is associated with the subject (e.g. patient). For example, use focus when recording the target of the education, training, or counseling is the parent or relative of a patient.", + ) + encounter_field: ReferenceModel = Field( + default=None, + alias="encounter", + description="The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated.", + ) + occurrencePeriod_field: PeriodModel = Field( + default=None, + alias="occurrencePeriod", + description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", + ) + occurrenceAge_field: AgeModel = Field( + default=None, + alias="occurrenceAge", + description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", + ) + occurrenceRange_field: RangeModel = Field( + default=None, + alias="occurrenceRange", + description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", + ) + # occurrenceTiming_field: TimingModel = Field( + # default=None, + # alias="occurrenceTiming", + # description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", + # ) + recorded_field: dateTimeModel = Field( + default=None, + alias="recorded", + description="The date the occurrence of the procedure was first captured in the record regardless of Procedure.status (potentially after the occurrence of the event).", + ) + recorder_field: ReferenceModel = Field( + default=None, + alias="recorder", + description="Individual who recorded the record and takes responsibility for its content.", + ) + reportedReference_field: ReferenceModel = Field( + default=None, + alias="reportedReference", + description="Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.", + ) + performer_field: List[Procedure_PerformerModel] = Field( + default_factory=list, + alias="performer", + description="Indicates who or what performed the procedure and how they were involved.", + ) + location_field: ReferenceModel = Field( + default=None, + alias="location", + description="The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant.", + ) + reason_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="reason", + description="The coded reason or reference why the procedure was performed. This may be a coded entity of some type, be present as text, or be a reference to one of several resources that justify the procedure.", + ) + bodySite_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="bodySite", + description="Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion.", + ) + outcome_field: CodeableConceptModel = Field( + default=None, + alias="outcome", + description="The outcome of the procedure - did it resolve the reasons for the procedure being performed?", + ) + report_field: List[ReferenceModel] = Field( + default_factory=list, + alias="report", + description="This could be a histology result, pathology report, surgical report, etc.", + ) + complication_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="complication", + description="Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues.", + ) + followUp_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="followUp", + description="If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used.", + ) + # note_field: List[AnnotationModel] = Field( + # default_factory=list, + # alias="note", + # description="Any other notes and comments about the procedure.", + # ) + focalDevice_field: List[Procedure_FocalDeviceModel] = Field( + default_factory=list, + alias="focalDevice", + description="A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure.", + ) + used_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="used", + description="Identifies medications, devices and any other substance used as part of the procedure.", + ) + supportingInfo_field: List[ReferenceModel] = Field( + default_factory=list, + alias="supportingInfo", + description="Other resources from the patient record that may be relevant to the procedure. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available.", + ) diff --git a/healthchain/fhir_resources/resource_registry.py b/healthchain/fhir_resources/resource_registry.py index cb689cf..c05e74c 100644 --- a/healthchain/fhir_resources/resource_registry.py +++ b/healthchain/fhir_resources/resource_registry.py @@ -8,6 +8,8 @@ class ImplementedResourceRegistry(Enum): NutritionOrder: str = "NutritionOrder" Patient: str = "Patient" Practitioner: str = "Practitioner" + Condition: str = "Condition" + Procedure: str = "Procedure" class UnimplementedResourceRegistry(Enum): @@ -42,7 +44,7 @@ class UnimplementedResourceRegistry(Enum): CompartmentDefinition: str = "CompartmentDefinition" Composition: str = "Composition" ConceptMap: str = "ConceptMap" - Condition: str = "Condition" + ConditionDefinition: str = "ConditionDefinition" Consent: str = "Consent" Contract: str = "Contract" diff --git a/tests/generators_tests/test_procedure_generators.py b/tests/generators_tests/test_procedure_generators.py new file mode 100644 index 0000000..724a620 --- /dev/null +++ b/tests/generators_tests/test_procedure_generators.py @@ -0,0 +1,12 @@ +from healthchain.data_generator.procedure_generators import ProcedureModelGenerator + + +def test_procedure_model_generator(): + procedure = ProcedureModelGenerator.generate( + subject_reference="Patient/123", encounter_reference="Encounter/123" + ) + assert procedure.resourceType == "Procedure" + assert procedure.subject_field.reference_field == "Patient/123" + assert procedure.encounter_field.reference_field == "Encounter/123" + # assert procedure.status_field.coding_field[0].code_field in ["in-progress", "completed"] + assert procedure.code_field.coding_field[0].code_field in ["123456", "654321"] From 8540b0932000e9362a06839e8fb8668805da2265 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Wed, 15 May 2024 09:01:28 +0100 Subject: [PATCH 19/24] Add medication resources --- .../medication_administration_generators.py | 45 ++++ .../medication_request_generators.py | 61 +++++ healthchain/fhir_resources/base_resources.py | 19 ++ .../medication_administration_resources.py | 254 ++++++++++++++++++ .../medication_request_resources.py | 69 +---- ...st_medication_administration_generators.py | 16 ++ .../test_medication_request_generators.py | 18 ++ 7 files changed, 425 insertions(+), 57 deletions(-) create mode 100644 healthchain/data_generator/medication_administration_generators.py create mode 100644 healthchain/fhir_resources/medication_administration_resources.py create mode 100644 tests/generators_tests/test_medication_administration_generators.py create mode 100644 tests/generators_tests/test_medication_request_generators.py diff --git a/healthchain/data_generator/medication_administration_generators.py b/healthchain/data_generator/medication_administration_generators.py new file mode 100644 index 0000000..b007248 --- /dev/null +++ b/healthchain/data_generator/medication_administration_generators.py @@ -0,0 +1,45 @@ +from healthchain.fhir_resources.medication_administration_resources import ( + MedicationAdministrationModel, + MedicationAdministration_DosageModel, +) +from healthchain.fhir_resources.base_resources import ReferenceModel +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from faker import Faker + + +faker = Faker() + + +@register_generator +class MedicationAdministrationDosageGenerator(BaseGenerator): + @staticmethod + def generate(): + return MedicationAdministration_DosageModel( + text=faker.random_element( + elements=( + "Take 1 tablet by mouth once daily", + "Take 2 tablets by mouth once daily", + ) + ), + ) + + +@register_generator +class medicationAdministrationGenerator(BaseGenerator): + @staticmethod + def generate(subject_reference: str, encounter_reference: str): + return MedicationAdministrationModel( + id=generator_registry.get("idGenerator").generate(), + status=generator_registry.get("eventStatusGenerator").generate(), + medication=generator_registry.get("medicationGenerator").generate(), + subject=ReferenceModel(reference=subject_reference), + encounter=ReferenceModel(reference=encounter_reference), + authoredOn=generator_registry.get("dateGenerator").generate(), + dosage=generator_registry.get( + "MedicationAdministrationDosageGenerator" + ).generate(), + ) diff --git a/healthchain/data_generator/medication_request_generators.py b/healthchain/data_generator/medication_request_generators.py index e69de29..161333d 100644 --- a/healthchain/data_generator/medication_request_generators.py +++ b/healthchain/data_generator/medication_request_generators.py @@ -0,0 +1,61 @@ +from healthchain.fhir_resources.medication_request_resources import ( + MedicationRequestModel, + DosageModel, +) +from healthchain.fhir_resources.base_resources import ( + ReferenceModel, + CodeableReferenceModel, +) +from healthchain.data_generator.base_generators import ( + BaseGenerator, + generator_registry, + register_generator, +) +from typing import Optional +from faker import Faker + + +faker = Faker() + + +@register_generator +class medicationGenerator(BaseGenerator): + @staticmethod + def generate(): + return CodeableReferenceModel( + reference=ReferenceModel( + reference=faker.random_element( + elements=("Medication/123", "Medication/456") + ) + ) + ) + + +@register_generator +class dosageInstructionGenerator(BaseGenerator): + @staticmethod + def generate(): + random_int = faker.random_int(min=1, max=10) + return DosageModel( + sequence=str(random_int), + text=f"Take {random_int} tablet(s) by mouth once daily", + ) + + +@register_generator +class MedicationRequestGenerator(BaseGenerator): + @staticmethod + def generate(subject_reference: Optional[str], encounter_reference: Optional[str]): + subject_reference = subject_reference or "Patient/123" + encounter_reference = encounter_reference or "Encounter/123" + return MedicationRequestModel( + id=generator_registry.get("idGenerator").generate(), + status=generator_registry.get("eventStatusGenerator").generate(), + medication=generator_registry.get("medicationGenerator").generate(), + subject=ReferenceModel(reference=subject_reference), + encounter=ReferenceModel(reference=encounter_reference), + authoredOn=generator_registry.get("dateTimeGenerator").generate(), + dosageInstruction=[ + generator_registry.get("dosageInstructionGenerator").generate() + ], + ) diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py index d82e6dc..70caf1b 100644 --- a/healthchain/fhir_resources/base_resources.py +++ b/healthchain/fhir_resources/base_resources.py @@ -340,3 +340,22 @@ class RangeModel(BaseModel): alias="high", description="The high limit. The boundary is inclusive.", ) + + +class RatioModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + numerator_field: QuantityModel = Field( + default=None, alias="numerator", description="The value of the numerator." + ) + denominator_field: QuantityModel = Field( + default=None, alias="denominator", description="The value of the denominator." + ) diff --git a/healthchain/fhir_resources/medication_administration_resources.py b/healthchain/fhir_resources/medication_administration_resources.py new file mode 100644 index 0000000..4b8f502 --- /dev/null +++ b/healthchain/fhir_resources/medication_administration_resources.py @@ -0,0 +1,254 @@ +from pydantic import BaseModel, Field +from typing import List +from healthchain.fhir_resources.base_resources import ( + stringModel, + idModel, + uriModel, + codeModel, + ExtensionModel, + IdentifierModel, + CodeableConceptModel, + ReferenceModel, + PeriodModel, + dateTimeModel, + CodeableReferenceModel, + NarrativeModel, + booleanModel, + QuantityModel, + RatioModel, +) + + +class MedicationAdministration_PerformerModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + function_field: CodeableConceptModel = Field( + default=None, + alias="function", + description="Distinguishes the type of involvement of the performer in the medication administration.", + ) + actor_field: CodeableReferenceModel = Field( + default=None, + alias="actor", + description="Indicates who or what performed the medication administration.", + ) + + +class MedicationAdministration_DosageModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.", + ) + site_field: CodeableConceptModel = Field( + default=None, + alias="site", + description="A coded specification of the anatomic site where the medication first entered the body. For example, left arm.", + ) + route_field: CodeableConceptModel = Field( + default=None, + alias="route", + description="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.", + ) + method_field: CodeableConceptModel = Field( + default=None, + alias="method", + description="A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.", + ) + dose_field: QuantityModel = Field( + default=None, + alias="dose", + description="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", + ) + rateRatio_field: RatioModel = Field( + default=None, + alias="rateRatio", + description="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", + ) + rateQuantity_field: QuantityModel = Field( + default=None, + alias="rateQuantity", + description="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", + ) + + +class MedicationAdministrationModel(BaseModel): + resourceType_field: str = "MedicationAdministration" + id_field: idModel = Field( + default=None, + alias="id", + description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + ) + # meta_field: MetaModel = Field( + # default=None, + # alias="meta", + # description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + # ) + implicitRules_field: uriModel = Field( + default=None, + alias="implicitRules", + description="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + ) + language_field: codeModel = Field( + default=None, + alias="language", + description="The base language in which the resource is written.", + ) + text_field: NarrativeModel = Field( + default=None, + alias="text", + description="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it clinically safe for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + ) + # contained_field: List[ResourceListModel] = Field( + # default_factory=list, + # alias="contained", + # description="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning.", + # ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + identifier_field: List[IdentifierModel] = Field( + default_factory=list, + alias="identifier", + description="Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.", + ) + basedOn_field: List[ReferenceModel] = Field( + default_factory=list, + alias="basedOn", + description="A plan that is fulfilled in whole or in part by this MedicationAdministration.", + ) + partOf_field: List[ReferenceModel] = Field( + default_factory=list, + alias="partOf", + description="A larger event of which this particular event is a component or step.", + ) + status_field: codeModel = Field( + default=None, + alias="status", + description="Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.", + ) + statusReason_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="statusReason", + description="A code indicating why the administration was not performed.", + ) + category_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="category", + description="The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication).", + ) + medication_field: CodeableReferenceModel = Field( + default=None, + alias="medication", + description="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", + ) + subject_field: ReferenceModel = Field( + default=None, + alias="subject", + description="The person or animal or group receiving the medication.", + ) + encounter_field: ReferenceModel = Field( + default=None, + alias="encounter", + description="The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.", + ) + supportingInformation_field: List[ReferenceModel] = Field( + default_factory=list, + alias="supportingInformation", + description="Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says give x if the heartrate exceeds y, then the heart rate can be included using this attribute.", + ) + occurencePeriod_field: PeriodModel = Field( + default=None, + alias="occurencePeriod", + description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", + ) + # occurenceTiming_field: TimingModel = Field( + # default=None, + # alias="occurenceTiming", + # description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", + # ) + recorded_field: dateTimeModel = Field( + default=None, + alias="recorded", + description="The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.", + ) + isSubPotent_field: booleanModel = Field( + default=None, + alias="isSubPotent", + description="An indication that the full dose was not administered.", + ) + subPotentReason_field: List[CodeableConceptModel] = Field( + default_factory=list, + alias="subPotentReason", + description="The reason or reasons why the full dose was not administered.", + ) + performer_field: List[MedicationAdministration_PerformerModel] = Field( + default_factory=list, + alias="performer", + description="The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.", + ) + reason_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="reason", + description="A code, Condition or observation that supports why the medication was administered.", + ) + request_field: ReferenceModel = Field( + default=None, + alias="request", + description="The original request, instruction or authority to perform the administration.", + ) + device_field: List[CodeableReferenceModel] = Field( + default_factory=list, + alias="device", + description="The device that is to be used for the administration of the medication (for example, PCA Pump).", + ) + # note_field: List[AnnotationModel] = Field( + # default_factory=list, + # alias="note", + # description="Extra information about the medication administration that is not conveyed by the other attributes.", + # ) + dosage_field: MedicationAdministration_DosageModel = Field( + default=None, + alias="dosage", + description="Describes the medication dosage information details e.g. dose, rate, site, route, etc.", + ) + eventHistory_field: List[ReferenceModel] = Field( + default_factory=list, + alias="eventHistory", + description="A summary of the events of interest that have occurred, such as when the administration was verified.", + ) diff --git a/healthchain/fhir_resources/medication_request_resources.py b/healthchain/fhir_resources/medication_request_resources.py index fa75163..831419f 100644 --- a/healthchain/fhir_resources/medication_request_resources.py +++ b/healthchain/fhir_resources/medication_request_resources.py @@ -14,13 +14,14 @@ CodeableReferenceModel, NarrativeModel, RangeModel, + RatioModel, booleanModel, QuantityModel, integerModel, ) -# TODO: Implement RAtio model +# TODO: Implement RatioModel and TimingModel class Dosage_DoseAndRateModel(BaseModel): id_field: stringModel = Field( default=None, @@ -48,11 +49,11 @@ class Dosage_DoseAndRateModel(BaseModel): doseQuantity_field: QuantityModel = Field( default=None, alias="doseQuantity", description="Amount of medication per dose." ) - # rateRatio_field: RatioModel = Field( - # default=None, - # alias="rateRatio", - # description="Amount of medication per unit of time.", - # ) + rateRatio_field: RatioModel = Field( + default=None, + alias="rateRatio", + description="Amount of medication per unit of time.", + ) rateRange_field: RangeModel = Field( default=None, alias="rateRange", @@ -132,11 +133,11 @@ class DosageModel(BaseModel): alias="doseAndRate", description="Depending on the resource,this is the amount of medication administered, to be administered or typical amount to be administered.", ) - # maxDosePerPeriod_field: List[RatioModel] = Field( - # default_factory=list, - # alias="maxDosePerPeriod", - # description="Upper limit on medication per unit of time.", - # ) + maxDosePerPeriod_field: List[RatioModel] = Field( + default_factory=list, + alias="maxDosePerPeriod", + description="Upper limit on medication per unit of time.", + ) maxDosePerAdministration_field: QuantityModel = Field( default=None, alias="maxDosePerAdministration", @@ -332,49 +333,3 @@ class MedicationRequestModel(BaseModel): alias="eventHistory", description="Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.", ) - - -{ - "resourceType": "MedicationRequest", - "id": "medrx002", - "text": { - "status": "generated", - "div": '

Generated Narrative: MedicationRequest

Resource MedicationRequest "medrx002"

identifier: id:\u00a012345\u00a0(use:\u00a0OFFICIAL)

status: active

intent: order

Medications

-Reference
*Medication/med0316: prescribed medication

subject: Patient/pat1: Donald Duck "Donald DUCK"

encounter: Encounter/f001: encounter that leads to this prescription

authoredOn: 2015-03-01

requester: Practitioner/f007: Patrick Pump "Simone HEPS"

Reasons

-Concept
*Essential hypertension (disorder) (SNOMED CT#59621000)

DosageInstructions

-SequenceText
*1Take one tablet daily as directed
', - }, - "identifier": [ - { - "use": "official", - "system": "http://www.bmc.nl/portal/prescriptions", - "value": "12345", - } - ], - "status": "active", - "intent": "order", - "medication": { - "reference": { - "reference": "Medication/med0316", - "display": "prescribed medication", - } - }, - "subject": {"reference": "Patient/pat1", "display": "Donald Duck"}, - "encounter": { - "reference": "Encounter/f001", - "display": "encounter that leads to this prescription", - }, - "authoredOn": "2015-03-01", - "requester": {"reference": "Practitioner/f007", "display": "Patrick Pump"}, - "reason": [ - { - "concept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "59621000", - "display": "Essential hypertension (disorder)", - } - ] - } - } - ], - "dosageInstruction": [{"sequence": 1, "text": "Take one tablet daily as directed"}], -} diff --git a/tests/generators_tests/test_medication_administration_generators.py b/tests/generators_tests/test_medication_administration_generators.py new file mode 100644 index 0000000..fb934e2 --- /dev/null +++ b/tests/generators_tests/test_medication_administration_generators.py @@ -0,0 +1,16 @@ +from healthchain.data_generator.medication_administration_generators import ( + MedicationAdministrationDosageGenerator, + medicationAdministrationGenerator, +) + + +def test_MedicationAdministrationDosageGenerator(): + result = MedicationAdministrationDosageGenerator.generate() + assert result.text_field is not None + + +def test_medicationAdministrationGenerator(): + result = medicationAdministrationGenerator.generate("Patient/123", "Encounter/123") + assert result.id_field is not None + assert result.status_field is not None + assert result.medication_field is not None diff --git a/tests/generators_tests/test_medication_request_generators.py b/tests/generators_tests/test_medication_request_generators.py new file mode 100644 index 0000000..940377d --- /dev/null +++ b/tests/generators_tests/test_medication_request_generators.py @@ -0,0 +1,18 @@ +from healthchain.data_generator.medication_request_generators import ( + MedicationRequestGenerator, + medicationGenerator, +) + + +def test_medication_generator(): + generator = medicationGenerator() + medication = generator.generate() + assert medication is not None + + +def test_medication_request_generator(): + generator = MedicationRequestGenerator() + medication_request = generator.generate("Patient/123", "Encounter/123") + assert medication_request is not None + assert medication_request.resourceType_field == "MedicationRequest" + assert medication_request.id_field is not None From 1ec4c1d76ac682d5702558971237105d11ecd37b Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Thu, 16 May 2024 10:53:36 +0100 Subject: [PATCH 20/24] refactor of base resources --- healthchain/data_generator/base_generators.py | 2 +- .../data_generator/condition_generators.py | 2 +- .../data_generator/encounter_generator.py | 5 +- .../medication_administration_generators.py | 2 +- .../medication_request_generators.py | 2 +- .../data_generator/patient_generator.py | 10 +- .../data_generator/practitioner_generator.py | 9 +- .../data_generator/procedure_generators.py | 2 +- healthchain/fhir_resources/base_resources.py | 361 ------------------ .../fhir_resources/condition_resources.py | 6 +- .../fhir_resources/encounter_resources.py | 6 +- .../medication_administration_resources.py | 8 +- .../medication_request_resources.py | 10 +- .../fhir_resources/patient_resources.py | 10 +- .../fhir_resources/practitioner_resources.py | 8 +- .../fhir_resources/procedure_resources.py | 8 +- .../test_fhir_resources_base.py | 2 +- 17 files changed, 57 insertions(+), 396 deletions(-) delete mode 100644 healthchain/fhir_resources/base_resources.py diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index 60827d7..da3029b 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -3,7 +3,7 @@ import random import string -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( booleanModel, canonicalModel, codeModel, diff --git a/healthchain/data_generator/condition_generators.py b/healthchain/data_generator/condition_generators.py index 72127f8..3cbd526 100644 --- a/healthchain/data_generator/condition_generators.py +++ b/healthchain/data_generator/condition_generators.py @@ -3,7 +3,7 @@ generator_registry, register_generator, ) -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.general_purpose_resources import ( CodeableConceptModel, CodingModel, ReferenceModel, diff --git a/healthchain/data_generator/encounter_generator.py b/healthchain/data_generator/encounter_generator.py index 807d455..8e6be18 100644 --- a/healthchain/data_generator/encounter_generator.py +++ b/healthchain/data_generator/encounter_generator.py @@ -1,5 +1,8 @@ from healthchain.fhir_resources.encounter_resources import EncounterModel -from healthchain.fhir_resources.base_resources import CodingModel, CodeableConceptModel +from healthchain.fhir_resources.general_purpose_resources import ( + CodingModel, + CodeableConceptModel, +) from healthchain.data_generator.base_generators import ( BaseGenerator, generator_registry, diff --git a/healthchain/data_generator/medication_administration_generators.py b/healthchain/data_generator/medication_administration_generators.py index b007248..53557e5 100644 --- a/healthchain/data_generator/medication_administration_generators.py +++ b/healthchain/data_generator/medication_administration_generators.py @@ -2,7 +2,7 @@ MedicationAdministrationModel, MedicationAdministration_DosageModel, ) -from healthchain.fhir_resources.base_resources import ReferenceModel +from healthchain.fhir_resources.general_purpose_resources import ReferenceModel from healthchain.data_generator.base_generators import ( BaseGenerator, generator_registry, diff --git a/healthchain/data_generator/medication_request_generators.py b/healthchain/data_generator/medication_request_generators.py index 161333d..7b6afe1 100644 --- a/healthchain/data_generator/medication_request_generators.py +++ b/healthchain/data_generator/medication_request_generators.py @@ -2,7 +2,7 @@ MedicationRequestModel, DosageModel, ) -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.general_purpose_resources import ( ReferenceModel, CodeableReferenceModel, ) diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index d78a89b..d284375 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -3,16 +3,18 @@ generator_registry, register_generator, ) -from healthchain.fhir_resources.base_resources import ( - PeriodModel, - CodeableConceptModel, +from healthchain.fhir_resources.primitive_resources import ( stringModel, - CodingModel, uriModel, codeModel, dateTimeModel, positiveIntModel, ) +from healthchain.fhir_resources.general_purpose_resources import ( + PeriodModel, + CodeableConceptModel, + CodingModel, +) from healthchain.fhir_resources.patient_resources import ( PatientModel, HumanNameModel, diff --git a/healthchain/data_generator/practitioner_generator.py b/healthchain/data_generator/practitioner_generator.py index 2e468dc..6b82999 100644 --- a/healthchain/data_generator/practitioner_generator.py +++ b/healthchain/data_generator/practitioner_generator.py @@ -3,14 +3,17 @@ generator_registry, register_generator, ) -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( booleanModel, - CodeableConceptModel, stringModel, - CodingModel, uriModel, codeModel, ) +from healthchain.fhir_resources.general_purpose_resources import ( + CodeableConceptModel, + CodingModel, +) + from healthchain.fhir_resources.practitioner_resources import ( PractitionerModel, Practitioner_QualificationModel, diff --git a/healthchain/data_generator/procedure_generators.py b/healthchain/data_generator/procedure_generators.py index 76c0390..6bfefa4 100644 --- a/healthchain/data_generator/procedure_generators.py +++ b/healthchain/data_generator/procedure_generators.py @@ -3,7 +3,7 @@ generator_registry, register_generator, ) -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.general_purpose_resources import ( CodeableConceptModel, CodingModel, ReferenceModel, diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py deleted file mode 100644 index 70caf1b..0000000 --- a/healthchain/fhir_resources/base_resources.py +++ /dev/null @@ -1,361 +0,0 @@ -from __future__ import annotations - -from pydantic import BaseModel, Field, conint -from typing import List -from pydantic import constr - - -booleanModel = constr(pattern=r"^(true|false)$") -canonicalModel = constr(pattern=r"^\S*$") -codeModel = constr(pattern=r"^[^\s]+( [^\s]+)*$") -dateModel = constr( - pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$" -) -dateTimeModel = constr( - pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$" -) -decimalModel = constr( - pattern=r"^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$" -) -idModel = constr(pattern=r"^[A-Za-z0-9\-\.]{1,64}$") -instantModel = constr( - pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$" -) -integerModel = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") -integer64Model = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") -markdownModel = constr(pattern=r"^^[\s\S]+$$") -oidModel = constr(pattern=r"^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$") -positiveIntModel = conint(strict=True, gt=0) -stringModel = constr(pattern=r"^^[\s\S]+$$") -timeModel = constr( - pattern=r"^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$" -) -unsignedIntModel = constr(pattern=r"^[0]|([1-9][0-9]*)$") -uriModel = constr(pattern=r"^\S*$") -urlModel = constr(pattern=r"^\S*$") -uuidModel = constr( - pattern=r"^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" -) - - -# TODO: Rename to primitives and move the models below to a separate file called General-purpose data types -class ExtensionModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - url_field: uriModel = Field( - default=None, - alias="url", - description="Source of the definition for the extension code - a logical name or a URL.", - ) - - -class PeriodModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - start_field: dateTimeModel = Field( - default=None, - alias="start", - description="The start of the period. The boundary is inclusive.", - ) - end_field: dateTimeModel = Field( - default=None, - alias="end", - description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.", - ) - - -class IdentifierModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") - type_field: CodeableConceptModel = Field( - default=None, - alias="type", - description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", - ) - system_field: uriModel = Field( - default=None, - alias="system", - description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.", - ) - value_field: stringModel = Field( - default=None, - alias="value", - description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.", - ) - period_field: PeriodModel = Field( - default=None, - alias="period", - description="Time period during which identifier is/was valid for use.", - ) - assigner_field: ReferenceModel = Field( - default=None, - alias="assigner", - description="Organization that issued/manages the identifier.", - ) - - -class CodingModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - system_field: uriModel = Field( - default=None, - alias="system", - description="The identification of the code system that defines the meaning of the symbol in the code.", - ) - version_field: stringModel = Field( - default=None, - alias="version", - description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.", - ) - code_field: codeModel = Field( - default=None, - alias="code", - description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).", - ) - display_field: stringModel = Field( - default=None, - alias="display", - description="A representation of the meaning of the code in the system, following the rules of the system.", - ) - userSelected_field: booleanModel = Field( - default=None, - alias="userSelected", - description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).", - ) - - -class CodeableConceptModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - coding_field: List[CodingModel] = Field( - default_factory=list, - alias="coding", - description="A reference to a code defined by a terminology system.", - ) - text_field: stringModel = Field( - default=None, - alias="text", - description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.", - ) - - -class ReferenceModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - reference_field: stringModel = Field( - default=None, - alias="reference", - description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.", - ) - type_field: uriModel = Field( - default=None, - alias="type", - description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.", - ) - identifier_field: IdentifierModel = Field( - default=None, - alias="identifier", - description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", - ) - display_field: stringModel = Field( - default=None, - alias="display", - description="Plain text narrative that identifies the resource in addition to the resource reference.", - ) - - -class CodeableReferenceModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - concept_field: CodeableConceptModel = Field( - default=None, - alias="concept", - description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.", - ) - reference_field: ReferenceModel = Field( - default=None, - alias="reference", - description="A reference to a resource the provides exact details about the information being referenced.", - ) - - -class NarrativeModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") - div_field: stringModel = Field( - default=None, - alias="div", - description="The actual narrative content, a stripped down version of XHTML.", - ) - - -class AgeModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - value_field: decimalModel = Field( - default=None, - alias="value", - description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", - ) - # Age_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field( - default=None, alias="unit", description="A human-readable form of the unit." - ) - system_field: uriModel = Field( - default=None, - alias="system", - description="The identification of the system that provides the coded form of the unit.", - ) - code_field: codeModel = Field( - default=None, - alias="code", - description="A computer processable form of the unit in some unit representation system.", - ) - - -class QuantityModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - value_field: decimalModel = Field( - default=None, - alias="value", - description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", - ) - # Quantity_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") - unit_field: stringModel = Field( - default=None, alias="unit", description="A human-readable form of the unit." - ) - system_field: uriModel = Field( - default=None, - alias="system", - description="The identification of the system that provides the coded form of the unit.", - ) - code_field: codeModel = Field( - default=None, - alias="code", - description="A computer processable form of the unit in some unit representation system.", - ) - - -class RangeModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - low_field: QuantityModel = Field( - default=None, - alias="low", - description="The low limit. The boundary is inclusive.", - ) - high_field: QuantityModel = Field( - default=None, - alias="high", - description="The high limit. The boundary is inclusive.", - ) - - -class RatioModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - numerator_field: QuantityModel = Field( - default=None, alias="numerator", description="The value of the numerator." - ) - denominator_field: QuantityModel = Field( - default=None, alias="denominator", description="The value of the denominator." - ) diff --git a/healthchain/fhir_resources/condition_resources.py b/healthchain/fhir_resources/condition_resources.py index 617dc64..8a9433e 100644 --- a/healthchain/fhir_resources/condition_resources.py +++ b/healthchain/fhir_resources/condition_resources.py @@ -1,16 +1,18 @@ from pydantic import BaseModel, Field from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( stringModel, idModel, uriModel, codeModel, + dateTimeModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, - dateTimeModel, CodeableReferenceModel, NarrativeModel, AgeModel, diff --git a/healthchain/fhir_resources/encounter_resources.py b/healthchain/fhir_resources/encounter_resources.py index 2e82351..29b8dd9 100644 --- a/healthchain/fhir_resources/encounter_resources.py +++ b/healthchain/fhir_resources/encounter_resources.py @@ -1,16 +1,18 @@ from pydantic import BaseModel, Field from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( stringModel, idModel, uriModel, codeModel, + dateTimeModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, - dateTimeModel, CodeableReferenceModel, NarrativeModel, ) diff --git a/healthchain/fhir_resources/medication_administration_resources.py b/healthchain/fhir_resources/medication_administration_resources.py index 4b8f502..2d9ee2c 100644 --- a/healthchain/fhir_resources/medication_administration_resources.py +++ b/healthchain/fhir_resources/medication_administration_resources.py @@ -1,19 +1,21 @@ from pydantic import BaseModel, Field from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( stringModel, idModel, uriModel, codeModel, + dateTimeModel, + booleanModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, - dateTimeModel, CodeableReferenceModel, NarrativeModel, - booleanModel, QuantityModel, RatioModel, ) diff --git a/healthchain/fhir_resources/medication_request_resources.py b/healthchain/fhir_resources/medication_request_resources.py index 831419f..7aa5b30 100644 --- a/healthchain/fhir_resources/medication_request_resources.py +++ b/healthchain/fhir_resources/medication_request_resources.py @@ -1,23 +1,25 @@ from pydantic import BaseModel, Field from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( stringModel, idModel, uriModel, codeModel, + dateTimeModel, + booleanModel, + integerModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, - dateTimeModel, CodeableReferenceModel, NarrativeModel, RangeModel, RatioModel, - booleanModel, QuantityModel, - integerModel, ) diff --git a/healthchain/fhir_resources/patient_resources.py b/healthchain/fhir_resources/patient_resources.py index f5db87e..92a05ae 100644 --- a/healthchain/fhir_resources/patient_resources.py +++ b/healthchain/fhir_resources/patient_resources.py @@ -1,18 +1,20 @@ from pydantic import Field, BaseModel from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( idModel, uriModel, codeModel, booleanModel, + stringModel, + positiveIntModel, + dateModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( IdentifierModel, ReferenceModel, - stringModel, ExtensionModel, PeriodModel, - positiveIntModel, CodeableConceptModel, - dateModel, ) diff --git a/healthchain/fhir_resources/practitioner_resources.py b/healthchain/fhir_resources/practitioner_resources.py index 10a0e42..80d4130 100644 --- a/healthchain/fhir_resources/practitioner_resources.py +++ b/healthchain/fhir_resources/practitioner_resources.py @@ -1,17 +1,19 @@ from pydantic import Field, BaseModel from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( idModel, uriModel, codeModel, booleanModel, + stringModel, + dateModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( IdentifierModel, ReferenceModel, - stringModel, ExtensionModel, PeriodModel, CodeableConceptModel, - dateModel, ) from healthchain.fhir_resources.patient_resources import ( HumanNameModel, diff --git a/healthchain/fhir_resources/procedure_resources.py b/healthchain/fhir_resources/procedure_resources.py index a19cbd9..5906289 100644 --- a/healthchain/fhir_resources/procedure_resources.py +++ b/healthchain/fhir_resources/procedure_resources.py @@ -1,21 +1,23 @@ from pydantic import BaseModel, Field from typing import List -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( stringModel, idModel, uriModel, codeModel, + dateTimeModel, + canonicalModel, +) +from healthchain.fhir_resources.general_purpose_resources import ( ExtensionModel, IdentifierModel, CodeableConceptModel, ReferenceModel, PeriodModel, - dateTimeModel, CodeableReferenceModel, NarrativeModel, AgeModel, RangeModel, - canonicalModel, ) diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py index 83d9b23..3ebf0fd 100644 --- a/tests/fhir_resources_unit_tests/test_fhir_resources_base.py +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_base.py @@ -1,7 +1,7 @@ from pydantic import ValidationError import pytest from pydantic import BaseModel -from healthchain.fhir_resources.base_resources import ( +from healthchain.fhir_resources.primitive_resources import ( booleanModel, canonicalModel, codeModel, From 361a49cc606cb4cb7470043a510bb89ac8f9f2a6 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Thu, 16 May 2024 11:03:01 +0100 Subject: [PATCH 21/24] refactor base --- .../general_purpose_resources.py | 542 ++++++++++++++++++ .../fhir_resources/primitive_resources.py | 38 ++ 2 files changed, 580 insertions(+) create mode 100644 healthchain/fhir_resources/general_purpose_resources.py create mode 100644 healthchain/fhir_resources/primitive_resources.py diff --git a/healthchain/fhir_resources/general_purpose_resources.py b/healthchain/fhir_resources/general_purpose_resources.py new file mode 100644 index 0000000..e5ec4b0 --- /dev/null +++ b/healthchain/fhir_resources/general_purpose_resources.py @@ -0,0 +1,542 @@ +from __future__ import annotations +from typing import List +from pydantic import BaseModel, Field +from healthchain.fhir_resources.primitive_resources import ( + stringModel, + uriModel, + dateTimeModel, + codeModel, + booleanModel, + decimalModel, + comparatorModel, + positiveIntModel, + canonicalModel, + unsignedIntModel, + idModel, + instantModel, + timeModel, +) + + +class ExtensionModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + url_field: uriModel = Field( + default=None, + alias="url", + description="Source of the definition for the extension code - a logical name or a URL.", + ) + + +class PeriodModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + start_field: dateTimeModel = Field( + default=None, + alias="start", + description="The start of the period. The boundary is inclusive.", + ) + end_field: dateTimeModel = Field( + default=None, + alias="end", + description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.", + ) + + +class IdentifierModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") + type_field: CodeableConceptModel = Field( + default=None, + alias="type", + description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.", + ) + value_field: stringModel = Field( + default=None, + alias="value", + description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.", + ) + period_field: PeriodModel = Field( + default=None, + alias="period", + description="Time period during which identifier is/was valid for use.", + ) + assigner_field: ReferenceModel = Field( + default=None, + alias="assigner", + description="Organization that issued/manages the identifier.", + ) + + +class CodingModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the code system that defines the meaning of the symbol in the code.", + ) + version_field: stringModel = Field( + default=None, + alias="version", + description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).", + ) + display_field: stringModel = Field( + default=None, + alias="display", + description="A representation of the meaning of the code in the system, following the rules of the system.", + ) + userSelected_field: booleanModel = Field( + default=None, + alias="userSelected", + description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).", + ) + + +class CodeableConceptModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + coding_field: List[CodingModel] = Field( + default_factory=list, + alias="coding", + description="A reference to a code defined by a terminology system.", + ) + text_field: stringModel = Field( + default=None, + alias="text", + description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.", + ) + + +class ReferenceModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + reference_field: stringModel = Field( + default=None, + alias="reference", + description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.", + ) + type_field: uriModel = Field( + default=None, + alias="type", + description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.", + ) + identifier_field: IdentifierModel = Field( + default=None, + alias="identifier", + description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", + ) + display_field: stringModel = Field( + default=None, + alias="display", + description="Plain text narrative that identifies the resource in addition to the resource reference.", + ) + + +class CodeableReferenceModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + concept_field: CodeableConceptModel = Field( + default=None, + alias="concept", + description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.", + ) + reference_field: ReferenceModel = Field( + default=None, + alias="reference", + description="A reference to a resource the provides exact details about the information being referenced.", + ) + + +class NarrativeModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") + div_field: stringModel = Field( + default=None, + alias="div", + description="The actual narrative content, a stripped down version of XHTML.", + ) + + +class AgeModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + value_field: decimalModel = Field( + default=None, + alias="value", + description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", + ) + age_comparator_field: comparatorModel = Field( + ..., + alias="comparator", + description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.", + ) + unit_field: stringModel = Field( + default=None, alias="unit", description="A human-readable form of the unit." + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the system that provides the coded form of the unit.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A computer processable form of the unit in some unit representation system.", + ) + + +class QuantityModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + value_field: decimalModel = Field( + default=None, + alias="value", + description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", + ) + # Quantity_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field( + default=None, alias="unit", description="A human-readable form of the unit." + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the system that provides the coded form of the unit.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A computer processable form of the unit in some unit representation system.", + ) + + +class RangeModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + low_field: QuantityModel = Field( + default=None, + alias="low", + description="The low limit. The boundary is inclusive.", + ) + high_field: QuantityModel = Field( + default=None, + alias="high", + description="The high limit. The boundary is inclusive.", + ) + + +class RatioModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + numerator_field: QuantityModel = Field( + default=None, alias="numerator", description="The value of the numerator." + ) + denominator_field: QuantityModel = Field( + default=None, alias="denominator", description="The value of the denominator." + ) + + +class TimingModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + event_field: List[dateTimeModel] = Field( + default_factory=list, + alias="event", + description="Identifies specific times when the event occurs.", + ) + repeat_field: Timing_RepeatModel = Field( + default=None, + alias="repeat", + description="A set of rules that describe when the event is scheduled.", + ) + code_field: CodeableConceptModel = Field( + default=None, + alias="code", + description="A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code).", + ) + + +class Timing_RepeatModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + modifierExtension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="modifierExtension", + description="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", + ) + boundsDuration_field: DurationModel = Field( + default=None, + alias="boundsDuration", + description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.", + ) + boundsRange_field: RangeModel = Field( + default=None, + alias="boundsRange", + description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.", + ) + boundsPeriod_field: PeriodModel = Field( + default=None, + alias="boundsPeriod", + description="Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule.", + ) + count_field: positiveIntModel = Field( + default=None, + alias="count", + description="A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values.", + ) + countMax_field: positiveIntModel = Field( + default=None, + alias="countMax", + description="If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times.", + ) + duration_field: decimalModel = Field( + default=None, + alias="duration", + description="How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration.", + ) + durationMax_field: decimalModel = Field( + default=None, + alias="durationMax", + description="If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length.", + ) + # Timing_Repeat_durationUnit_field: durationUnitModel = Field(..., alias="durationUnit", description="The units of time for the duration, in UCUM units") + frequency_field: positiveIntModel = Field( + default=None, + alias="frequency", + description="The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency.", + ) + frequencyMax_field: positiveIntModel = Field( + default=None, + alias="frequencyMax", + description="If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range.", + ) + period_field: decimalModel = Field( + default=None, + alias="period", + description="Indicates the duration of time over which repetitions are to occur; e.g. to express 3 times per day, 3 would be the frequency and 1 day would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length.", + ) + periodMax_field: decimalModel = Field( + default=None, + alias="periodMax", + description="If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as do this once every 3-5 days.", + ) + # Timing_Repeat_periodUnit_field: periodUnitModel = Field(..., alias="periodUnit", description="The units of time for the period in UCUM units") + dayOfWeek_field: List[codeModel] = Field( + default_factory=list, + alias="dayOfWeek", + description="If one or more days of week is provided, then the action happens only on the specified day(s).", + ) + timeOfDay_field: List[timeModel] = Field( + default_factory=list, + alias="timeOfDay", + description="Specified time of day for action to take place.", + ) + offset_field: unsignedIntModel = Field( + default=None, + alias="offset", + description="The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event.", + ) + + +class MetaModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + versionId_field: idModel = Field( + default=None, + alias="versionId", + description="The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.", + ) + lastUpdated_field: instantModel = Field( + default=None, + alias="lastUpdated", + description="When the resource last changed - e.g. when the version changed.", + ) + source_field: uriModel = Field( + default=None, + alias="source", + description="A uri that identifies the source system of the resource. This provides a minimal amount of [[[Provenance]]] information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.", + ) + profile_field: List[canonicalModel] = Field( + default_factory=list, + alias="profile", + description="A list of profiles (references to [[[StructureDefinition]]] resources) that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].", + ) + security_field: List[CodingModel] = Field( + default_factory=list, + alias="security", + description="Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", + ) + tag_field: List[CodingModel] = Field( + default_factory=list, + alias="tag", + description="Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", + ) + + +class DurationModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + value_field: decimalModel = Field( + default=None, + alias="value", + description="The value of the measured amount. The value includes an implicit precision in the presentation of the value.", + ) + # Duration_comparator_field: comparatorModel = Field(..., alias="comparator", description="How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is < , then the real value is < stated value.") + unit_field: stringModel = Field( + default=None, alias="unit", description="A human-readable form of the unit." + ) + system_field: uriModel = Field( + default=None, + alias="system", + description="The identification of the system that provides the coded form of the unit.", + ) + code_field: codeModel = Field( + default=None, + alias="code", + description="A computer processable form of the unit in some unit representation system.", + ) diff --git a/healthchain/fhir_resources/primitive_resources.py b/healthchain/fhir_resources/primitive_resources.py new file mode 100644 index 0000000..22cacad --- /dev/null +++ b/healthchain/fhir_resources/primitive_resources.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +from pydantic import conint +from pydantic import constr + + +booleanModel = constr(pattern=r"^(true|false)$") +canonicalModel = constr(pattern=r"^\S*$") +codeModel = constr(pattern=r"^[^\s]+( [^\s]+)*$") +comparatorModel = constr(pattern="^(<|<=|>=|>)$") +dateModel = constr( + pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$" +) +dateTimeModel = constr( + pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$" +) +decimalModel = constr( + pattern=r"^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$" +) +idModel = constr(pattern=r"^[A-Za-z0-9\-\.]{1,64}$") +instantModel = constr( + pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$" +) +integerModel = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") +integer64Model = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") +markdownModel = constr(pattern=r"^^[\s\S]+$$") +oidModel = constr(pattern=r"^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$") +positiveIntModel = conint(strict=True, gt=0) +stringModel = constr(pattern=r"^^[\s\S]+$$") +timeModel = constr( + pattern=r"^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$" +) +unsignedIntModel = constr(pattern=r"^[0]|([1-9][0-9]*)$") +uriModel = constr(pattern=r"^\S*$") +urlModel = constr(pattern=r"^\S*$") +uuidModel = constr( + pattern=r"^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" +) From 52e0a08119f9f2456731580b227c2a769e4d1fdf Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Thu, 16 May 2024 12:20:42 +0100 Subject: [PATCH 22/24] add bundle --- .../fhir_resources/bundle_resources.py | 36 +++++++++++++++++++ .../fhir_resources/condition_resources.py | 11 +++--- .../fhir_resources/encounter_resources.py | 7 +++- .../medication_administration_resources.py | 11 +++--- .../medication_request_resources.py | 7 +++- .../fhir_resources/patient_resources.py | 7 +++- .../fhir_resources/practitioner_resources.py | 7 +++- .../fhir_resources/procedure_resources.py | 22 ++++++------ .../fhir_resources/resource_registry.py | 2 +- .../test_fhir_resources_bundle.py | 18 ++++++++++ 10 files changed, 103 insertions(+), 25 deletions(-) create mode 100644 healthchain/fhir_resources/bundle_resources.py create mode 100644 tests/fhir_resources_unit_tests/test_fhir_resources_bundle.py diff --git a/healthchain/fhir_resources/bundle_resources.py b/healthchain/fhir_resources/bundle_resources.py new file mode 100644 index 0000000..0e90c35 --- /dev/null +++ b/healthchain/fhir_resources/bundle_resources.py @@ -0,0 +1,36 @@ +from healthchain.fhir_resources.resource_registry import ImplementedResourceRegistry +from pydantic import Field, BaseModel, field_validator +from typing import List + +implemented_resources = [f"{item.value}Model" for item in ImplementedResourceRegistry] + + +class Bundle_EntryModel(BaseModel): + resource_field: BaseModel = Field( + default=None, + alias="resource", + description="The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type. This is allowed to be a Parameters resource if and only if it is referenced by something else within the Bundle that provides context/meaning.", + ) + + @field_validator("resource_field") + def check_enum(cls, value): + if not isinstance(value, BaseModel): + raise ValueError( + f"Invalid value: {value}. Must be an instance of a subclass of BaseModel." + ) + + if value.__class__.__name__ not in implemented_resources: + raise ValueError( + f"Invalid value class: {value.__class__.__name__}. Must be one of {implemented_resources}." + ) + + return value + + +class BundleModel(BaseModel): + resourceType_field: str = "Bundle" + entry_field: List[Bundle_EntryModel] = Field( + default_factory=list, + alias="entry", + description="An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).", + ) diff --git a/healthchain/fhir_resources/condition_resources.py b/healthchain/fhir_resources/condition_resources.py index 8a9433e..085ee78 100644 --- a/healthchain/fhir_resources/condition_resources.py +++ b/healthchain/fhir_resources/condition_resources.py @@ -17,6 +17,7 @@ NarrativeModel, AgeModel, RangeModel, + MetaModel, ) @@ -88,11 +89,11 @@ class ConditionModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field( - # default=None, - # alias="meta", - # description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", - # ) + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", diff --git a/healthchain/fhir_resources/encounter_resources.py b/healthchain/fhir_resources/encounter_resources.py index 29b8dd9..1a3a2b3 100644 --- a/healthchain/fhir_resources/encounter_resources.py +++ b/healthchain/fhir_resources/encounter_resources.py @@ -15,6 +15,7 @@ PeriodModel, CodeableReferenceModel, NarrativeModel, + MetaModel, ) @@ -200,7 +201,11 @@ class EncounterModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", diff --git a/healthchain/fhir_resources/medication_administration_resources.py b/healthchain/fhir_resources/medication_administration_resources.py index 2d9ee2c..86a1ee3 100644 --- a/healthchain/fhir_resources/medication_administration_resources.py +++ b/healthchain/fhir_resources/medication_administration_resources.py @@ -18,6 +18,7 @@ NarrativeModel, QuantityModel, RatioModel, + MetaModel, ) @@ -109,11 +110,11 @@ class MedicationAdministrationModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field( - # default=None, - # alias="meta", - # description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", - # ) + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", diff --git a/healthchain/fhir_resources/medication_request_resources.py b/healthchain/fhir_resources/medication_request_resources.py index 7aa5b30..eb894b4 100644 --- a/healthchain/fhir_resources/medication_request_resources.py +++ b/healthchain/fhir_resources/medication_request_resources.py @@ -20,6 +20,7 @@ RangeModel, RatioModel, QuantityModel, + MetaModel, ) @@ -159,7 +160,11 @@ class MedicationRequestModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", diff --git a/healthchain/fhir_resources/patient_resources.py b/healthchain/fhir_resources/patient_resources.py index 92a05ae..0c8afa5 100644 --- a/healthchain/fhir_resources/patient_resources.py +++ b/healthchain/fhir_resources/patient_resources.py @@ -15,6 +15,7 @@ ExtensionModel, PeriodModel, CodeableConceptModel, + MetaModel, ) @@ -275,7 +276,11 @@ class PatientModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", diff --git a/healthchain/fhir_resources/practitioner_resources.py b/healthchain/fhir_resources/practitioner_resources.py index 80d4130..e366e9f 100644 --- a/healthchain/fhir_resources/practitioner_resources.py +++ b/healthchain/fhir_resources/practitioner_resources.py @@ -14,6 +14,7 @@ ExtensionModel, PeriodModel, CodeableConceptModel, + MetaModel, ) from healthchain.fhir_resources.patient_resources import ( HumanNameModel, @@ -95,7 +96,11 @@ class PractitionerModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field(default=None, alias="meta", description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.") + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", diff --git a/healthchain/fhir_resources/procedure_resources.py b/healthchain/fhir_resources/procedure_resources.py index 5906289..adb457b 100644 --- a/healthchain/fhir_resources/procedure_resources.py +++ b/healthchain/fhir_resources/procedure_resources.py @@ -18,6 +18,8 @@ NarrativeModel, AgeModel, RangeModel, + MetaModel, + TimingModel, ) @@ -94,11 +96,11 @@ class ProcedureModel(BaseModel): alias="id", description="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", ) - # meta_field: MetaModel = Field( - # default=None, - # alias="meta", - # description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", - # ) + meta_field: MetaModel = Field( + default=None, + alias="meta", + description="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + ) implicitRules_field: uriModel = Field( default=None, alias="implicitRules", @@ -204,11 +206,11 @@ class ProcedureModel(BaseModel): alias="occurrenceRange", description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", ) - # occurrenceTiming_field: TimingModel = Field( - # default=None, - # alias="occurrenceTiming", - # description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", - # ) + occurrenceTiming_field: TimingModel = Field( + default=None, + alias="occurrenceTiming", + description="Estimated or actual date, date-time, period, or age when the procedure did occur or is occurring. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured.", + ) recorded_field: dateTimeModel = Field( default=None, alias="recorded", diff --git a/healthchain/fhir_resources/resource_registry.py b/healthchain/fhir_resources/resource_registry.py index c05e74c..6dee832 100644 --- a/healthchain/fhir_resources/resource_registry.py +++ b/healthchain/fhir_resources/resource_registry.py @@ -1,4 +1,4 @@ -from typing import Enum +from enum import Enum class ImplementedResourceRegistry(Enum): diff --git a/tests/fhir_resources_unit_tests/test_fhir_resources_bundle.py b/tests/fhir_resources_unit_tests/test_fhir_resources_bundle.py new file mode 100644 index 0000000..246d364 --- /dev/null +++ b/tests/fhir_resources_unit_tests/test_fhir_resources_bundle.py @@ -0,0 +1,18 @@ +from healthchain.fhir_resources.bundle_resources import Bundle_EntryModel, BundleModel +from healthchain.data_generator.patient_generator import PatientGenerator +from healthchain.data_generator.encounter_generator import EncounterGenerator + + +def test_bundle_entry_model(): + patient_generator = PatientGenerator() + patient = patient_generator.generate() + encounter_generator = EncounterGenerator() + encounter = encounter_generator.generate(patient_reference="Patient/123") + + # check that bundle can be created with out error + + bundle_patient_entry = Bundle_EntryModel(resource=patient) + bundle_encounter_entry = Bundle_EntryModel(resource=encounter) + bundle = BundleModel(entry=[bundle_patient_entry, bundle_encounter_entry]) + assert bundle.entry_field[0].resource_field == patient + assert bundle.entry_field[1].resource_field == encounter From 7499ca3f5f5fb3ed1d6201e0f429a93ea55c1907 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Fri, 17 May 2024 10:19:38 +0100 Subject: [PATCH 23/24] add annotation --- healthchain/fhir_resources/base_resources.py | 255 ------------------ .../general_purpose_resources.py | 29 ++ 2 files changed, 29 insertions(+), 255 deletions(-) delete mode 100644 healthchain/fhir_resources/base_resources.py diff --git a/healthchain/fhir_resources/base_resources.py b/healthchain/fhir_resources/base_resources.py deleted file mode 100644 index 742e596..0000000 --- a/healthchain/fhir_resources/base_resources.py +++ /dev/null @@ -1,255 +0,0 @@ -from __future__ import annotations - -from pydantic import BaseModel, Field, conint -from typing import List -from pydantic import constr - - -booleanModel = constr(pattern=r"^(true|false)$") -canonicalModel = constr(pattern=r"^\S*$") -codeModel = constr(pattern=r"^[^\s]+( [^\s]+)*$") -dateModel = constr( - pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?$" -) -dateTimeModel = constr( - pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?)?)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)?)?)?$" -) -decimalModel = constr( - pattern=r"^-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$" -) -idModel = constr(pattern=r"^[A-Za-z0-9\-\.]{1,64}$") -instantModel = constr( - pattern=r"^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))$" -) -integerModel = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") -integer64Model = constr(pattern=r"^[0]|[-+]?[1-9][0-9]*$") -markdownModel = constr(pattern=r"^^[\s\S]+$$") -oidModel = constr(pattern=r"^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$") -positiveIntModel = conint(strict=True, gt=0) -stringModel = constr(pattern=r"^^[\s\S]+$$") -timeModel = constr( - pattern=r"^([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?$" -) -unsignedIntModel = constr(pattern=r"^[0]|([1-9][0-9]*)$") -uriModel = constr(pattern=r"^\S*$") -urlModel = constr(pattern=r"^\S*$") -uuidModel = constr( - pattern=r"^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" -) - - -# TODO: Rename to primitives and move the models below to a separate file called General-purpose data types -class ExtensionModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - url_field: uriModel = Field( - default=None, - alias="url", - description="Source of the definition for the extension code - a logical name or a URL.", - ) - - -class PeriodModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - start_field: dateTimeModel = Field( - default=None, - alias="start", - description="The start of the period. The boundary is inclusive.", - ) - end_field: dateTimeModel = Field( - default=None, - alias="end", - description="The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.", - ) - - -class IdentifierModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - # Identifier_use_field: useModel = Field(..., alias="use", description="The purpose of this identifier.") - type_field: CodeableConceptModel = Field( - default=None, - alias="type", - description="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", - ) - system_field: uriModel = Field( - default=None, - alias="system", - description="Establishes the namespace for the value - that is, an absolute URL that describes a set values that are unique.", - ) - value_field: stringModel = Field( - default=None, - alias="value", - description="The portion of the identifier typically relevant to the user and which is unique within the context of the system.", - ) - period_field: PeriodModel = Field( - default=None, - alias="period", - description="Time period during which identifier is/was valid for use.", - ) - assigner_field: ReferenceModel = Field( - default=None, - alias="assigner", - description="Organization that issued/manages the identifier.", - ) - - -class CodingModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - system_field: uriModel = Field( - default=None, - alias="system", - description="The identification of the code system that defines the meaning of the symbol in the code.", - ) - version_field: stringModel = Field( - default=None, - alias="version", - description="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.", - ) - code_field: codeModel = Field( - default=None, - alias="code", - description="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).", - ) - display_field: stringModel = Field( - default=None, - alias="display", - description="A representation of the meaning of the code in the system, following the rules of the system.", - ) - userSelected_field: booleanModel = Field( - default=None, - alias="userSelected", - description="Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).", - ) - - -class CodeableConceptModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - coding_field: List[CodingModel] = Field( - default_factory=list, - alias="coding", - description="A reference to a code defined by a terminology system.", - ) - text_field: stringModel = Field( - default=None, - alias="text", - description="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.", - ) - - -class ReferenceModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - reference_field: stringModel = Field( - default=None, - alias="reference", - description="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.", - ) - type_field: uriModel = Field( - default=None, - alias="type", - description="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.", - ) - identifier_field: IdentifierModel = Field( - default=None, - alias="identifier", - description="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", - ) - display_field: stringModel = Field( - default=None, - alias="display", - description="Plain text narrative that identifies the resource in addition to the resource reference.", - ) - - -class CodeableReferenceModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - concept_field: CodeableConceptModel = Field( - default=None, - alias="concept", - description="A reference to a concept - e.g. the information is identified by its general class to the degree of precision found in the terminology.", - ) - reference_field: ReferenceModel = Field( - default=None, - alias="reference", - description="A reference to a resource the provides exact details about the information being referenced.", - ) - - -class NarrativeModel(BaseModel): - id_field: stringModel = Field( - default=None, - alias="id", - description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - ) - extension_field: List[ExtensionModel] = Field( - default_factory=list, - alias="extension", - description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - ) - # Narrative_status_field: statusModel = Field(..., alias="status", description="The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data.") - div_field: stringModel = Field( - default=None, - alias="div", - description="The actual narrative content, a stripped down version of XHTML.", - ) diff --git a/healthchain/fhir_resources/general_purpose_resources.py b/healthchain/fhir_resources/general_purpose_resources.py index e5ec4b0..2af679e 100644 --- a/healthchain/fhir_resources/general_purpose_resources.py +++ b/healthchain/fhir_resources/general_purpose_resources.py @@ -7,6 +7,7 @@ dateTimeModel, codeModel, booleanModel, + markdownModel, decimalModel, comparatorModel, positiveIntModel, @@ -540,3 +541,31 @@ class DurationModel(BaseModel): alias="code", description="A computer processable form of the unit in some unit representation system.", ) + + +class AnnotationModel(BaseModel): + id_field: stringModel = Field( + default=None, + alias="id", + description="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + ) + extension_field: List[ExtensionModel] = Field( + default_factory=list, + alias="extension", + description="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + ) + authorReference_field: ReferenceModel = Field( + default=None, + alias="authorReference", + description="The individual responsible for making the annotation.", + ) + time_field: dateTimeModel = Field( + default=None, + alias="time", + description="Indicates when this particular annotation was made.", + ) + text_field: markdownModel = Field( + default=None, + alias="text", + description="The text of the annotation in markdown format.", + ) From 6430c59ab6924cebb582a9e4a39d72e032e0e550 Mon Sep 17 00:00:00 2001 From: Adam Kells Date: Fri, 17 May 2024 10:43:42 +0100 Subject: [PATCH 24/24] change case on generators --- healthchain/data_generator/base_generators.py | 34 +++++++++---------- .../data_generator/condition_generators.py | 30 ++++++++-------- .../data_generator/encounter_generator.py | 2 +- .../medication_administration_generators.py | 10 +++--- .../medication_request_generators.py | 14 ++++---- .../data_generator/patient_generator.py | 10 +++--- .../data_generator/procedure_generators.py | 10 +++--- .../fhir_resources/condition_resources.py | 11 +++--- .../medication_administration_resources.py | 22 ++++++------ .../test_condition_generators.py | 18 +++++----- ...st_medication_administration_generators.py | 6 ++-- .../test_medication_request_generators.py | 8 ++--- 12 files changed, 89 insertions(+), 86 deletions(-) diff --git a/healthchain/data_generator/base_generators.py b/healthchain/data_generator/base_generators.py index da3029b..335bb83 100644 --- a/healthchain/data_generator/base_generators.py +++ b/healthchain/data_generator/base_generators.py @@ -58,21 +58,21 @@ def generate(): @register_generator -class booleanGenerator(BaseGenerator): +class BooleanGenerator(BaseGenerator): @staticmethod def generate(): return booleanModel(random.choice(["true", "false"])) @register_generator -class canonicalGenerator(BaseGenerator): +class CanonicalGenerator(BaseGenerator): @staticmethod def generate(): return canonicalModel(f"https://example/{faker.uri_path()}") @register_generator -class codeGenerator(BaseGenerator): +class CodeGenerator(BaseGenerator): # TODO: Codes can technically have whitespace but here I've left it out for simplicity @staticmethod def generate(): @@ -82,98 +82,98 @@ def generate(): @register_generator -class dateGenerator(BaseGenerator): +class DateGenerator(BaseGenerator): @staticmethod def generate(): return dateModel(faker.date()) @register_generator -class dateTimeGenerator(BaseGenerator): +class DateTimeGenerator(BaseGenerator): @staticmethod def generate(): return dateTimeModel(faker.date_time().isoformat()) @register_generator -class decimalGenerator(BaseGenerator): +class DecimalGenerator(BaseGenerator): @staticmethod def generate(): return decimalModel(faker.random_number()) @register_generator -class idGenerator(BaseGenerator): +class IdGenerator(BaseGenerator): @staticmethod def generate(): return idModel(faker.uuid4()) @register_generator -class instantGenerator(BaseGenerator): +class InstantGenerator(BaseGenerator): @staticmethod def generate(): return instantModel(faker.date_time().isoformat()) @register_generator -class integerGenerator(BaseGenerator): +class IntegerGenerator(BaseGenerator): @staticmethod def generate(): return integerModel(faker.random_int()) @register_generator -class markdownGenerator(BaseGenerator): +class MarkdownGenerator(BaseGenerator): @staticmethod def generate(): return markdownModel(faker.text()) @register_generator -class positiveIntGenerator(BaseGenerator): +class PositiveIntGenerator(BaseGenerator): @staticmethod def generate(): return positiveIntModel(faker.random_int(min=1)) @register_generator -class stringGenerator(BaseGenerator): +class StringGenerator(BaseGenerator): @staticmethod def generate(): return stringModel(faker.word()) @register_generator -class timeGenerator(BaseGenerator): +class TimeGenerator(BaseGenerator): @staticmethod def generate(): return timeModel(faker.time()) @register_generator -class unsignedIntGenerator(BaseGenerator): +class UnsignedIntGenerator(BaseGenerator): @staticmethod def generate(): return unsignedIntModel(faker.random_int(min=0)) @register_generator -class uriGenerator(BaseGenerator): +class UriGenerator(BaseGenerator): @staticmethod def generate(): return uriModel(f"https://example/{faker.uri_path()}") @register_generator -class urlGenerator(BaseGenerator): +class UrlGenerator(BaseGenerator): @staticmethod def generate(): return urlModel(f"https://example/{faker.uri_path()}") @register_generator -class uuidGenerator(BaseGenerator): +class UuidGenerator(BaseGenerator): @staticmethod def generate(): return uuidModel(faker.uuid4()) diff --git a/healthchain/data_generator/condition_generators.py b/healthchain/data_generator/condition_generators.py index 3cbd526..3fc9c2e 100644 --- a/healthchain/data_generator/condition_generators.py +++ b/healthchain/data_generator/condition_generators.py @@ -21,7 +21,7 @@ @register_generator -class clinicalStatusGenerator(BaseGenerator): +class ClinicalStatusGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -37,7 +37,7 @@ def generate(): @register_generator -class verificationStatusGenerator(BaseGenerator): +class VerificationStatusGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -51,7 +51,7 @@ def generate(): @register_generator -class categoryGenerator(BaseGenerator): +class CategoryGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -78,7 +78,7 @@ def generate(): @register_generator -class severityGenerator(BaseGenerator): +class SeverityGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -95,7 +95,7 @@ def generate(): @register_generator -class snomedCodeGenerator(BaseGenerator): +class SnomedCodeGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -110,7 +110,7 @@ def generate(): @register_generator -class bodySiteGenerator(BaseGenerator): +class BodySiteGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -141,19 +141,19 @@ def generate(subject_reference: Optional[str], encounter_reference: Optional[str subject_reference = subject_reference or "Patient/123" encounter_reference = encounter_reference or "Encounter/123" return ConditionModel( - id=generator_registry.get("idGenerator").generate(), - clinicalStatus=generator_registry.get("clinicalStatusGenerator").generate(), + id=generator_registry.get("IdGenerator").generate(), + clinicalStatus=generator_registry.get("ClinicalStatusGenerator").generate(), verificationStatus=generator_registry.get( - "verificationStatusGenerator" + "VerificationStatusGenerator" ).generate(), - category=[generator_registry.get("categoryGenerator").generate()], - severity=generator_registry.get("severityGenerator").generate(), - code=generator_registry.get("snomedCodeGenerator").generate(), - bodySite=[generator_registry.get("bodySiteGenerator").generate()], + category=[generator_registry.get("CategoryGenerator").generate()], + severity=generator_registry.get("SeverityGenerator").generate(), + code=generator_registry.get("SnomedCodeGenerator").generate(), + bodySite=[generator_registry.get("BodySiteGenerator").generate()], subject=ReferenceModel(reference=subject_reference), encounter=ReferenceModel(reference=encounter_reference), onsetDateTime=generator_registry.get( - "dateGenerator" + "DateGenerator" ).generate(), ## Are there more plausible dates to use? - recordedDate=generator_registry.get("dateGenerator").generate(), + recordedDate=generator_registry.get("DateGenerator").generate(), ) diff --git a/healthchain/data_generator/encounter_generator.py b/healthchain/data_generator/encounter_generator.py index 8e6be18..2b15cca 100644 --- a/healthchain/data_generator/encounter_generator.py +++ b/healthchain/data_generator/encounter_generator.py @@ -73,7 +73,7 @@ def generate(patient_reference: Optional[str]): patient_reference = "Patient/123" return EncounterModel( resourceType="Encounter", - id=generator_registry.get("idGenerator").generate(), + id=generator_registry.get("IdGenerator").generate(), text={ "status": "generated", "div": '
Encounter with patient @example
', diff --git a/healthchain/data_generator/medication_administration_generators.py b/healthchain/data_generator/medication_administration_generators.py index 53557e5..fbae77a 100644 --- a/healthchain/data_generator/medication_administration_generators.py +++ b/healthchain/data_generator/medication_administration_generators.py @@ -29,16 +29,16 @@ def generate(): @register_generator -class medicationAdministrationGenerator(BaseGenerator): +class MedicationAdministrationGenerator(BaseGenerator): @staticmethod def generate(subject_reference: str, encounter_reference: str): return MedicationAdministrationModel( - id=generator_registry.get("idGenerator").generate(), - status=generator_registry.get("eventStatusGenerator").generate(), - medication=generator_registry.get("medicationGenerator").generate(), + id=generator_registry.get("IdGenerator").generate(), + status=generator_registry.get("EventStatusGenerator").generate(), + medication=generator_registry.get("MedicationGenerator").generate(), subject=ReferenceModel(reference=subject_reference), encounter=ReferenceModel(reference=encounter_reference), - authoredOn=generator_registry.get("dateGenerator").generate(), + authoredOn=generator_registry.get("DateGenerator").generate(), dosage=generator_registry.get( "MedicationAdministrationDosageGenerator" ).generate(), diff --git a/healthchain/data_generator/medication_request_generators.py b/healthchain/data_generator/medication_request_generators.py index 7b6afe1..797c821 100644 --- a/healthchain/data_generator/medication_request_generators.py +++ b/healthchain/data_generator/medication_request_generators.py @@ -19,7 +19,7 @@ @register_generator -class medicationGenerator(BaseGenerator): +class MedicationGenerator(BaseGenerator): @staticmethod def generate(): return CodeableReferenceModel( @@ -32,7 +32,7 @@ def generate(): @register_generator -class dosageInstructionGenerator(BaseGenerator): +class DosageInstructionGenerator(BaseGenerator): @staticmethod def generate(): random_int = faker.random_int(min=1, max=10) @@ -49,13 +49,13 @@ def generate(subject_reference: Optional[str], encounter_reference: Optional[str subject_reference = subject_reference or "Patient/123" encounter_reference = encounter_reference or "Encounter/123" return MedicationRequestModel( - id=generator_registry.get("idGenerator").generate(), - status=generator_registry.get("eventStatusGenerator").generate(), - medication=generator_registry.get("medicationGenerator").generate(), + id=generator_registry.get("IdGenerator").generate(), + status=generator_registry.get("EventStatusGenerator").generate(), + medication=generator_registry.get("MedicationGenerator").generate(), subject=ReferenceModel(reference=subject_reference), encounter=ReferenceModel(reference=encounter_reference), - authoredOn=generator_registry.get("dateTimeGenerator").generate(), + authoredOn=generator_registry.get("DateTimeGenerator").generate(), dosageInstruction=[ - generator_registry.get("dosageInstructionGenerator").generate() + generator_registry.get("DosageInstructionGenerator").generate() ], ) diff --git a/healthchain/data_generator/patient_generator.py b/healthchain/data_generator/patient_generator.py index d284375..d69ac74 100644 --- a/healthchain/data_generator/patient_generator.py +++ b/healthchain/data_generator/patient_generator.py @@ -76,7 +76,7 @@ def generate(): @register_generator -class maritalStatusGenerator(BaseGenerator): +class MaritalStatusGenerator(BaseGenerator): def generate(): marital_status_dict = { "D": "Divorced", @@ -116,16 +116,16 @@ class PatientGenerator(BaseGenerator): def generate(): return PatientModel( resourceType="Patient", - id=generator_registry.get("idGenerator").generate(), - active=generator_registry.get("booleanGenerator").generate(), + id=generator_registry.get("IdGenerator").generate(), + active=generator_registry.get("BooleanGenerator").generate(), name=[generator_registry.get("HumanNameGenerator").generate()], telecom=[generator_registry.get("ContactPointGenerator").generate()], gender=codeModel( faker.random_element(elements=("male", "female", "other", "unknown")) ), - birthDate=generator_registry.get("dateGenerator").generate(), + birthDate=generator_registry.get("DateGenerator").generate(), address=[ generator_registry.get("AddressGenerator").generate() for _ in range(1) ], ## List of length 1 for simplicity - maritalStatus=generator_registry.get("maritalStatusGenerator").generate(), + maritalStatus=generator_registry.get("MaritalStatusGenerator").generate(), ) diff --git a/healthchain/data_generator/procedure_generators.py b/healthchain/data_generator/procedure_generators.py index 6bfefa4..10c09c1 100644 --- a/healthchain/data_generator/procedure_generators.py +++ b/healthchain/data_generator/procedure_generators.py @@ -17,14 +17,14 @@ @register_generator -class eventStatusGenerator(BaseGenerator): +class EventStatusGenerator(BaseGenerator): @staticmethod def generate(): return faker.random_element(elements=("in-progress", "completed")) @register_generator -class procedureSnomedCodeGenerator(BaseGenerator): +class ProcedureSnomedCodeGenerator(BaseGenerator): @staticmethod def generate(): return CodeableConceptModel( @@ -44,9 +44,9 @@ def generate(subject_reference: Optional[str], encounter_reference: Optional[str subject_reference = subject_reference or "Patient/123" encounter_reference = encounter_reference or "Encounter/123" return ProcedureModel( - id=generator_registry.get("idGenerator").generate(), - status=generator_registry.get("eventStatusGenerator").generate(), - code=generator_registry.get("procedureSnomedCodeGenerator").generate(), + id=generator_registry.get("IdGenerator").generate(), + status=generator_registry.get("EventStatusGenerator").generate(), + code=generator_registry.get("ProcedureSnomedCodeGenerator").generate(), subject=ReferenceModel(reference=subject_reference), encounter=ReferenceModel(reference=encounter_reference), occurrencePeriod=generator_registry.get("PeriodGenerator").generate(), diff --git a/healthchain/fhir_resources/condition_resources.py b/healthchain/fhir_resources/condition_resources.py index 085ee78..86d8a56 100644 --- a/healthchain/fhir_resources/condition_resources.py +++ b/healthchain/fhir_resources/condition_resources.py @@ -18,6 +18,7 @@ AgeModel, RangeModel, MetaModel, + AnnotationModel, ) @@ -219,8 +220,8 @@ class ConditionModel(BaseModel): alias="evidence", description="Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition.", ) - # note_field: List[AnnotationModel] = Field( - # default_factory=list, - # alias="note", - # description="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.", - # ) + note_field: List[AnnotationModel] = Field( + default_factory=list, + alias="note", + description="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.", + ) diff --git a/healthchain/fhir_resources/medication_administration_resources.py b/healthchain/fhir_resources/medication_administration_resources.py index 86a1ee3..b2c8099 100644 --- a/healthchain/fhir_resources/medication_administration_resources.py +++ b/healthchain/fhir_resources/medication_administration_resources.py @@ -17,8 +17,10 @@ CodeableReferenceModel, NarrativeModel, QuantityModel, + TimingModel, RatioModel, MetaModel, + AnnotationModel, ) @@ -200,11 +202,11 @@ class MedicationAdministrationModel(BaseModel): alias="occurencePeriod", description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", ) - # occurenceTiming_field: TimingModel = Field( - # default=None, - # alias="occurenceTiming", - # description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", - # ) + occurenceTiming_field: TimingModel = Field( + default=None, + alias="occurenceTiming", + description="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", + ) recorded_field: dateTimeModel = Field( default=None, alias="recorded", @@ -240,11 +242,11 @@ class MedicationAdministrationModel(BaseModel): alias="device", description="The device that is to be used for the administration of the medication (for example, PCA Pump).", ) - # note_field: List[AnnotationModel] = Field( - # default_factory=list, - # alias="note", - # description="Extra information about the medication administration that is not conveyed by the other attributes.", - # ) + note_field: List[AnnotationModel] = Field( + default_factory=list, + alias="note", + description="Extra information about the medication administration that is not conveyed by the other attributes.", + ) dosage_field: MedicationAdministration_DosageModel = Field( default=None, alias="dosage", diff --git a/tests/generators_tests/test_condition_generators.py b/tests/generators_tests/test_condition_generators.py index 082024e..31ae5aa 100644 --- a/tests/generators_tests/test_condition_generators.py +++ b/tests/generators_tests/test_condition_generators.py @@ -1,13 +1,13 @@ from healthchain.data_generator.condition_generators import ( - clinicalStatusGenerator, - verificationStatusGenerator, - categoryGenerator, + ClinicalStatusGenerator, + VerificationStatusGenerator, + CategoryGenerator, ConditionModelGenerator, ) -def test_clinicalStatusGenerator(): - clinical_status = clinicalStatusGenerator.generate() +def test_ClinicalStatusGenerator(): + clinical_status = ClinicalStatusGenerator.generate() assert ( clinical_status.coding_field[0].system_field == "http://terminology.hl7.org/CodeSystem/condition-clinical" @@ -20,8 +20,8 @@ def test_clinicalStatusGenerator(): ) -def test_verificationStatusGenerator(): - verification_status = verificationStatusGenerator.generate() +def test_VerificationStatusGenerator(): + verification_status = VerificationStatusGenerator.generate() assert ( verification_status.coding_field[0].system_field == "http://terminology.hl7.org/CodeSystem/condition-ver-status" @@ -32,8 +32,8 @@ def test_verificationStatusGenerator(): ) -def test_categoryGenerator(): - category = categoryGenerator.generate() +def test_CategoryGenerator(): + category = CategoryGenerator.generate() assert category.coding_field[0].system_field == "http://snomed.info/sct" assert category.coding_field[0].code_field in ("55607006", "404684003") diff --git a/tests/generators_tests/test_medication_administration_generators.py b/tests/generators_tests/test_medication_administration_generators.py index fb934e2..b025f5f 100644 --- a/tests/generators_tests/test_medication_administration_generators.py +++ b/tests/generators_tests/test_medication_administration_generators.py @@ -1,6 +1,6 @@ from healthchain.data_generator.medication_administration_generators import ( MedicationAdministrationDosageGenerator, - medicationAdministrationGenerator, + MedicationAdministrationGenerator, ) @@ -9,8 +9,8 @@ def test_MedicationAdministrationDosageGenerator(): assert result.text_field is not None -def test_medicationAdministrationGenerator(): - result = medicationAdministrationGenerator.generate("Patient/123", "Encounter/123") +def test_MedicationAdministrationGenerator(): + result = MedicationAdministrationGenerator.generate("Patient/123", "Encounter/123") assert result.id_field is not None assert result.status_field is not None assert result.medication_field is not None diff --git a/tests/generators_tests/test_medication_request_generators.py b/tests/generators_tests/test_medication_request_generators.py index 940377d..3a1bfd7 100644 --- a/tests/generators_tests/test_medication_request_generators.py +++ b/tests/generators_tests/test_medication_request_generators.py @@ -1,16 +1,16 @@ from healthchain.data_generator.medication_request_generators import ( MedicationRequestGenerator, - medicationGenerator, + MedicationGenerator, ) -def test_medication_generator(): - generator = medicationGenerator() +def test_MedicationGenerator(): + generator = MedicationGenerator() medication = generator.generate() assert medication is not None -def test_medication_request_generator(): +def test_MedicationRequestGenerator(): generator = MedicationRequestGenerator() medication_request = generator.generate("Patient/123", "Encounter/123") assert medication_request is not None