From 236b3e9051e70ee3d0e2a68a80f1fa62507afad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20D=C3=ADaz?= Date: Thu, 6 Apr 2023 13:01:19 -0700 Subject: [PATCH 01/17] Allow concurrent use of welkin clients --- poetry.lock | 1238 ++++++++++++++++++++------------------ pyproject.toml | 3 + test/test_encounters.py | 1 + welkin/authentication.py | 18 +- 4 files changed, 674 insertions(+), 586 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9070a0d..1a872bd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,5 @@ +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + [[package]] name = "alabaster" version = "0.7.12" @@ -5,6 +7,10 @@ description = "A configurable sidebar-enabled Sphinx theme" category = "dev" optional = false python-versions = "*" +files = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] [[package]] name = "astroid" @@ -13,6 +19,10 @@ description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.6.2" +files = [ + {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, + {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, +] [package.dependencies] lazy-object-proxy = ">=1.4.0" @@ -28,6 +38,10 @@ description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] [package.extras] dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] @@ -42,6 +56,10 @@ description = "Internationalization utilities" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, + {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, +] [package.dependencies] pytz = ">=2015.7" @@ -53,6 +71,29 @@ description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"}, + {file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"}, + {file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"}, + {file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"}, + {file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"}, + {file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"}, + {file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"}, + {file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"}, + {file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"}, + {file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"}, + {file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"}, + {file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"}, + {file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"}, + {file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"}, + {file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"}, + {file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"}, + {file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"}, + {file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"}, + {file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"}, + {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"}, + {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"}, +] [package.dependencies] click = ">=8.0.0" @@ -76,6 +117,10 @@ description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] [[package]] name = "charset-normalizer" @@ -84,6 +129,10 @@ description = "The Real First Universal Charset Detector. Open, modern and activ category = "main" optional = false python-versions = ">=3.6.0" +files = [ + {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, + {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, +] [package.extras] unicode-backport = ["unicodedata2"] @@ -95,6 +144,10 @@ description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -107,6 +160,10 @@ description = "Cross-platform colored terminal text." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, +] [[package]] name = "coverage" @@ -115,6 +172,58 @@ description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "coverage-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53"}, + {file = "coverage-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660"}, + {file = "coverage-6.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4"}, + {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04"}, + {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0"}, + {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae"}, + {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466"}, + {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a"}, + {file = "coverage-6.5.0-cp310-cp310-win32.whl", hash = "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32"}, + {file = "coverage-6.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e"}, + {file = "coverage-6.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795"}, + {file = "coverage-6.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75"}, + {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b"}, + {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91"}, + {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4"}, + {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa"}, + {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b"}, + {file = "coverage-6.5.0-cp311-cp311-win32.whl", hash = "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578"}, + {file = "coverage-6.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b"}, + {file = "coverage-6.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4433b90fae13f86fafff0b326453dd42fc9a639a0d9e4eec4d366436d1a41b6d"}, + {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4f05d88d9a80ad3cac6244d36dd89a3c00abc16371769f1340101d3cb899fc3"}, + {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94e2565443291bd778421856bc975d351738963071e9b8839ca1fc08b42d4bef"}, + {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:027018943386e7b942fa832372ebc120155fd970837489896099f5cfa2890f79"}, + {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:255758a1e3b61db372ec2736c8e2a1fdfaf563977eedbdf131de003ca5779b7d"}, + {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:851cf4ff24062c6aec510a454b2584f6e998cada52d4cb58c5e233d07172e50c"}, + {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12adf310e4aafddc58afdb04d686795f33f4d7a6fa67a7a9d4ce7d6ae24d949f"}, + {file = "coverage-6.5.0-cp37-cp37m-win32.whl", hash = "sha256:b5604380f3415ba69de87a289a2b56687faa4fe04dbee0754bfcae433489316b"}, + {file = "coverage-6.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4a8dbc1f0fbb2ae3de73eb0bdbb914180c7abfbf258e90b311dcd4f585d44bd2"}, + {file = "coverage-6.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d900bb429fdfd7f511f868cedd03a6bbb142f3f9118c09b99ef8dc9bf9643c3c"}, + {file = "coverage-6.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2198ea6fc548de52adc826f62cb18554caedfb1d26548c1b7c88d8f7faa8f6ba"}, + {file = "coverage-6.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c4459b3de97b75e3bd6b7d4b7f0db13f17f504f3d13e2a7c623786289dd670e"}, + {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:20c8ac5386253717e5ccc827caad43ed66fea0efe255727b1053a8154d952398"}, + {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b07130585d54fe8dff3d97b93b0e20290de974dc8177c320aeaf23459219c0b"}, + {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dbdb91cd8c048c2b09eb17713b0c12a54fbd587d79adcebad543bc0cd9a3410b"}, + {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:de3001a203182842a4630e7b8d1a2c7c07ec1b45d3084a83d5d227a3806f530f"}, + {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e07f4a4a9b41583d6eabec04f8b68076ab3cd44c20bd29332c6572dda36f372e"}, + {file = "coverage-6.5.0-cp38-cp38-win32.whl", hash = "sha256:6d4817234349a80dbf03640cec6109cd90cba068330703fa65ddf56b60223a6d"}, + {file = "coverage-6.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:7ccf362abd726b0410bf8911c31fbf97f09f8f1061f8c1cf03dfc4b6372848f6"}, + {file = "coverage-6.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:633713d70ad6bfc49b34ead4060531658dc6dfc9b3eb7d8a716d5873377ab745"}, + {file = "coverage-6.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:95203854f974e07af96358c0b261f1048d8e1083f2de9b1c565e1be4a3a48cfc"}, + {file = "coverage-6.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9023e237f4c02ff739581ef35969c3739445fb059b060ca51771e69101efffe"}, + {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:265de0fa6778d07de30bcf4d9dc471c3dc4314a23a3c6603d356a3c9abc2dfcf"}, + {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f830ed581b45b82451a40faabb89c84e1a998124ee4212d440e9c6cf70083e5"}, + {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7b6be138d61e458e18d8e6ddcddd36dd96215edfe5f1168de0b1b32635839b62"}, + {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:42eafe6778551cf006a7c43153af1211c3aaab658d4d66fa5fcc021613d02518"}, + {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:723e8130d4ecc8f56e9a611e73b31219595baa3bb252d539206f7bbbab6ffc1f"}, + {file = "coverage-6.5.0-cp39-cp39-win32.whl", hash = "sha256:d9ecf0829c6a62b9b573c7bb6d4dcd6ba8b6f80be9ba4fc7ed50bf4ac9aecd72"}, + {file = "coverage-6.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc2af30ed0d5ae0b1abdb4ebdce598eafd5b35397d4d75deb341a614d333d987"}, + {file = "coverage-6.5.0-pp36.pp37.pp38-none-any.whl", hash = "sha256:1431986dac3923c5945271f169f59c45b8802a114c8f548d611f2015133df77a"}, + {file = "coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84"}, +] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} @@ -129,6 +238,25 @@ description = "Docutils -- Python Documentation Utilities" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] + +[[package]] +name = "execnet" +version = "1.9.0" +description = "execnet: rapid multi-Python deployment" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"}, + {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"}, +] + +[package.extras] +testing = ["pre-commit"] [[package]] name = "idna" @@ -137,6 +265,10 @@ description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] [[package]] name = "imagesize" @@ -145,6 +277,10 @@ description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] [[package]] name = "importlib-metadata" @@ -153,6 +289,10 @@ description = "Read metadata from Python packages" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"}, + {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"}, +] [package.dependencies] typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} @@ -170,6 +310,10 @@ description = "iniconfig: brain-dead simple config-ini parsing" category = "dev" optional = false python-versions = "*" +files = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] [[package]] name = "isort" @@ -178,6 +322,10 @@ description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.6.1,<4.0" +files = [ + {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, + {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, +] [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] @@ -192,6 +340,10 @@ description = "A very fast and expressive template engine." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] [package.dependencies] MarkupSafe = ">=2.0" @@ -206,6 +358,45 @@ description = "A fast and thorough lazy object proxy." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, + {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, + {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, + {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, + {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, + {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, + {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, +] [[package]] name = "markdown-it-py" @@ -214,6 +405,10 @@ description = "Python port of markdown-it. Markdown parsing, done right!" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, + {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, +] [package.dependencies] mdurl = ">=0.1,<1.0" @@ -236,6 +431,48 @@ description = "Safely add untrusted strings to HTML/XML markup." category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] [[package]] name = "mdit-py-plugins" @@ -244,6 +481,10 @@ description = "Collection of plugins for markdown-it-py" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "mdit-py-plugins-0.3.1.tar.gz", hash = "sha256:3fc13298497d6e04fe96efdd41281bfe7622152f9caa1815ea99b5c893de9441"}, + {file = "mdit_py_plugins-0.3.1-py3-none-any.whl", hash = "sha256:606a7f29cf56dbdfaf914acb21709b8f8ee29d857e8f29dcc33d8cb84c57bfa1"}, +] [package.dependencies] markdown-it-py = ">=1.0.0,<3.0.0" @@ -260,6 +501,10 @@ description = "Markdown URL utilities" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] [[package]] name = "multidict" @@ -268,47 +513,120 @@ description = "multidict implementation" category = "dev" optional = false python-versions = ">=3.7" - -[[package]] -name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "myst-parser" -version = "0.18.1" -description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -docutils = ">=0.15,<0.20" -jinja2 = "*" -markdown-it-py = ">=1.0.0,<3.0.0" -mdit-py-plugins = ">=0.3.1,<0.4.0" -pyyaml = "*" -sphinx = ">=4,<6" -typing-extensions = "*" - -[package.extras] -code-style = ["pre-commit (>=2.12,<3.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] -testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] - -[[package]] -name = "packaging" -version = "21.3" -description = "Core utilities for Python packages" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] +files = [ + {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2"}, + {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3"}, + {file = "multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88"}, + {file = "multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87"}, + {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389"}, + {file = "multidict-6.0.2-cp310-cp310-win32.whl", hash = "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293"}, + {file = "multidict-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658"}, + {file = "multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b"}, + {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b"}, + {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15"}, + {file = "multidict-6.0.2-cp37-cp37m-win32.whl", hash = "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc"}, + {file = "multidict-6.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a"}, + {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60"}, + {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86"}, + {file = "multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693"}, + {file = "multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9"}, + {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d"}, + {file = "multidict-6.0.2-cp38-cp38-win32.whl", hash = "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57"}, + {file = "multidict-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96"}, + {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c"}, + {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e"}, + {file = "multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9"}, + {file = "multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360"}, + {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937"}, + {file = "multidict-6.0.2-cp39-cp39-win32.whl", hash = "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a"}, + {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"}, + {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"}, +] + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] + +[[package]] +name = "myst-parser" +version = "0.18.1" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, + {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, +] + +[package.dependencies] +docutils = ">=0.15,<0.20" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<3.0.0" +mdit-py-plugins = ">=0.3.1,<0.4.0" +pyyaml = "*" +sphinx = ">=4,<6" +typing-extensions = "*" + +[package.extras] +code-style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] + +[[package]] +name = "packaging" +version = "21.3" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] + +[package.dependencies] pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] @@ -318,6 +636,10 @@ description = "Utility library for gitignore style pattern matching of file path category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, + {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, +] [[package]] name = "platformdirs" @@ -326,6 +648,10 @@ description = "A small Python module for determining appropriate platform-specif category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] [package.extras] docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] @@ -338,6 +664,10 @@ description = "plugin and hook calling mechanisms for python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] [package.dependencies] importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} @@ -346,6 +676,26 @@ importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "portalocker" +version = "2.7.0" +description = "Wraps the portalocker recipe for easy usage" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "portalocker-2.7.0-py2.py3-none-any.whl", hash = "sha256:a07c5b4f3985c3cf4798369631fb7011adb498e2a46d8440efc75a8f29a0f983"}, + {file = "portalocker-2.7.0.tar.gz", hash = "sha256:032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51"}, +] + +[package.dependencies] +pywin32 = {version = ">=226", markers = "platform_system == \"Windows\""} + +[package.extras] +docs = ["sphinx (>=1.7.1)"] +redis = ["redis"] +tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)"] + [[package]] name = "py" version = "1.11.0" @@ -353,6 +703,10 @@ description = "library with cross-python path, ini-parsing, io, code, log facili category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] [[package]] name = "Pygments" @@ -361,6 +715,10 @@ description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, + {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, +] [package.extras] plugins = ["importlib-metadata"] @@ -372,6 +730,10 @@ description = "pyparsing module - Classes and methods to define and execute pars category = "dev" optional = false python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] @@ -383,6 +745,10 @@ description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-7.1.3-py3-none-any.whl", hash = "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7"}, + {file = "pytest-7.1.3.tar.gz", hash = "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39"}, +] [package.dependencies] attrs = ">=19.2.0" @@ -404,6 +770,10 @@ description = "Pytest plugin for measuring coverage." category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, + {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, +] [package.dependencies] coverage = {version = ">=5.2.1", extras = ["toml"]} @@ -419,6 +789,10 @@ description = "A py.test plugin that parses environment files before running tes category = "dev" optional = false python-versions = "*" +files = [ + {file = "pytest-dotenv-0.5.2.tar.gz", hash = "sha256:2dc6c3ac6d8764c71c6d2804e902d0ff810fa19692e95fe138aefc9b1aa73732"}, + {file = "pytest_dotenv-0.5.2-py3-none-any.whl", hash = "sha256:40a2cece120a213898afaa5407673f6bd924b1fa7eafce6bda0e8abffe2f710f"}, +] [package.dependencies] pytest = ">=5.0.0" @@ -431,11 +805,36 @@ description = "Plugin for managing VCR.py cassettes" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pytest-vcr-1.0.2.tar.gz", hash = "sha256:23ee51b75abbcc43d926272773aae4f39f93aceb75ed56852d0bf618f92e1896"}, + {file = "pytest_vcr-1.0.2-py2.py3-none-any.whl", hash = "sha256:2f316e0539399bea0296e8b8401145c62b6f85e9066af7e57b6151481b0d6d9c"}, +] [package.dependencies] pytest = ">=3.6.0" vcrpy = "*" +[[package]] +name = "pytest-xdist" +version = "3.2.1" +description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-xdist-3.2.1.tar.gz", hash = "sha256:1849bd98d8b242b948e472db7478e090bf3361912a8fed87992ed94085f54727"}, + {file = "pytest_xdist-3.2.1-py3-none-any.whl", hash = "sha256:37290d161638a20b672401deef1cba812d110ac27e35d213f091d15b8beb40c9"}, +] + +[package.dependencies] +execnet = ">=1.1" +pytest = ">=6.2.0" + +[package.extras] +psutil = ["psutil (>=3.0)"] +setproctitle = ["setproctitle"] +testing = ["filelock"] + [[package]] name = "python-dotenv" version = "0.21.0" @@ -443,6 +842,10 @@ description = "Read key-value pairs from a .env file and set them as environment category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "python-dotenv-0.21.0.tar.gz", hash = "sha256:b77d08274639e3d34145dfa6c7008e66df0f04b7be7a75fd0d5292c191d79045"}, + {file = "python_dotenv-0.21.0-py3-none-any.whl", hash = "sha256:1684eb44636dd462b66c3ee016599815514527ad99965de77f43e0944634a7e5"}, +] [package.extras] cli = ["click (>=5.0)"] @@ -454,6 +857,34 @@ description = "World timezone definitions, modern and historical" category = "dev" optional = false python-versions = "*" +files = [ + {file = "pytz-2022.4-py2.py3-none-any.whl", hash = "sha256:2c0784747071402c6e99f0bafdb7da0fa22645f06554c7ae06bf6358897e9c91"}, + {file = "pytz-2022.4.tar.gz", hash = "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] [[package]] name = "PyYAML" @@ -462,6 +893,48 @@ description = "YAML parser and emitter for Python" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] [[package]] name = "requests" @@ -470,6 +943,10 @@ description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.7, <4" +files = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] [package.dependencies] certifi = ">=2017.4.17" @@ -488,6 +965,10 @@ description = "Easily download, build, install, upgrade, and uninstall Python pa category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "setuptools-65.5.1-py3-none-any.whl", hash = "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31"}, + {file = "setuptools-65.5.1.tar.gz", hash = "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f"}, +] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] @@ -501,6 +982,10 @@ description = "Python 2 and 3 compatibility utilities" category = "dev" 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 = "snowballstemmer" @@ -509,6 +994,10 @@ description = "This package provides 29 stemmers for 28 languages generated from category = "dev" optional = false python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] [[package]] name = "Sphinx" @@ -517,6 +1006,10 @@ description = "Python documentation generator" category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "Sphinx-5.2.3.tar.gz", hash = "sha256:5b10cb1022dac8c035f75767799c39217a05fc0fe2d6fe5597560d38e44f0363"}, + {file = "sphinx-5.2.3-py3-none-any.whl", hash = "sha256:7abf6fabd7b58d0727b7317d5e2650ef68765bbe0ccb63c8795fa8683477eaa2"}, +] [package.dependencies] alabaster = ">=0.7,<0.8" @@ -549,6 +1042,10 @@ description = "Sphinx API documentation generator" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "sphinx-autoapi-2.0.0.tar.gz", hash = "sha256:97dcf1b5b54cd0d8efef867594e4a4f3e2d3a2c0ec1e5a891e0a61bc77046006"}, + {file = "sphinx_autoapi-2.0.0-py2.py3-none-any.whl", hash = "sha256:dab2753a38cad907bf4e61473c0da365a26bfbe69fbf5aa6e4f7d48e1cf8a148"}, +] [package.dependencies] astroid = ">=2.7" @@ -569,6 +1066,10 @@ description = "Read the Docs theme for Sphinx" category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +files = [ + {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, + {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, +] [package.dependencies] docutils = "<0.18" @@ -584,6 +1085,10 @@ description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -596,6 +1101,10 @@ description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -608,6 +1117,10 @@ description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML h category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -620,6 +1133,10 @@ description = "A sphinx extension which renders display math in HTML via JavaScr category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] [package.extras] test = ["flake8", "mypy", "pytest"] @@ -631,6 +1148,10 @@ description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp d category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -643,6 +1164,10 @@ description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -655,6 +1180,10 @@ description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "typed-ast" @@ -663,537 +1192,7 @@ description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false python-versions = ">=3.6" - -[[package]] -name = "typing-extensions" -version = "4.4.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "dev" -optional = false -python-versions = ">=3.7" - -[[package]] -name = "Unidecode" -version = "1.3.6" -description = "ASCII transliterations of Unicode text" -category = "dev" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "urllib3" -version = "1.26.12" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] - -[[package]] -name = "vcrpy" -version = "4.2.1" -description = "Automatically mock your HTTP interactions to simplify and speed up testing" -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -PyYAML = "*" -six = ">=1.5" -wrapt = "*" -yarl = "*" - -[[package]] -name = "wrapt" -version = "1.14.1" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" - -[[package]] -name = "yarl" -version = "1.8.1" -description = "Yet another URL library" -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" -typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} - -[[package]] -name = "zipp" -version = "3.9.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" -optional = false -python-versions = ">=3.7" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] -testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] - -[metadata] -lock-version = "1.1" -python-versions = "^3.7" -content-hash = "feb2c190d3db177dd7fbdf2a955c64a913208c29148ad33c2215e480e0cacea5" - -[metadata.files] -alabaster = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, -] -astroid = [ - {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"}, - {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"}, -] -attrs = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, -] -Babel = [ - {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, - {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, -] -black = [ - {file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"}, - {file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"}, - {file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"}, - {file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"}, - {file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"}, - {file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"}, - {file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"}, - {file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"}, - {file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"}, - {file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"}, - {file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"}, - {file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"}, - {file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"}, - {file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"}, - {file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"}, - {file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"}, - {file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"}, - {file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"}, - {file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"}, - {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"}, - {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"}, -] -certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -colorama = [ - {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, - {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, -] -coverage = [ - {file = "coverage-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53"}, - {file = "coverage-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660"}, - {file = "coverage-6.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4"}, - {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04"}, - {file = "coverage-6.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0"}, - {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae"}, - {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466"}, - {file = "coverage-6.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a"}, - {file = "coverage-6.5.0-cp310-cp310-win32.whl", hash = "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32"}, - {file = "coverage-6.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e"}, - {file = "coverage-6.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795"}, - {file = "coverage-6.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75"}, - {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b"}, - {file = "coverage-6.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91"}, - {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4"}, - {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa"}, - {file = "coverage-6.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b"}, - {file = "coverage-6.5.0-cp311-cp311-win32.whl", hash = "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578"}, - {file = "coverage-6.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b"}, - {file = "coverage-6.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4433b90fae13f86fafff0b326453dd42fc9a639a0d9e4eec4d366436d1a41b6d"}, - {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4f05d88d9a80ad3cac6244d36dd89a3c00abc16371769f1340101d3cb899fc3"}, - {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94e2565443291bd778421856bc975d351738963071e9b8839ca1fc08b42d4bef"}, - {file = "coverage-6.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:027018943386e7b942fa832372ebc120155fd970837489896099f5cfa2890f79"}, - {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:255758a1e3b61db372ec2736c8e2a1fdfaf563977eedbdf131de003ca5779b7d"}, - {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:851cf4ff24062c6aec510a454b2584f6e998cada52d4cb58c5e233d07172e50c"}, - {file = "coverage-6.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12adf310e4aafddc58afdb04d686795f33f4d7a6fa67a7a9d4ce7d6ae24d949f"}, - {file = "coverage-6.5.0-cp37-cp37m-win32.whl", hash = "sha256:b5604380f3415ba69de87a289a2b56687faa4fe04dbee0754bfcae433489316b"}, - {file = "coverage-6.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4a8dbc1f0fbb2ae3de73eb0bdbb914180c7abfbf258e90b311dcd4f585d44bd2"}, - {file = "coverage-6.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d900bb429fdfd7f511f868cedd03a6bbb142f3f9118c09b99ef8dc9bf9643c3c"}, - {file = "coverage-6.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2198ea6fc548de52adc826f62cb18554caedfb1d26548c1b7c88d8f7faa8f6ba"}, - {file = "coverage-6.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c4459b3de97b75e3bd6b7d4b7f0db13f17f504f3d13e2a7c623786289dd670e"}, - {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:20c8ac5386253717e5ccc827caad43ed66fea0efe255727b1053a8154d952398"}, - {file = "coverage-6.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b07130585d54fe8dff3d97b93b0e20290de974dc8177c320aeaf23459219c0b"}, - {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dbdb91cd8c048c2b09eb17713b0c12a54fbd587d79adcebad543bc0cd9a3410b"}, - {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:de3001a203182842a4630e7b8d1a2c7c07ec1b45d3084a83d5d227a3806f530f"}, - {file = "coverage-6.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e07f4a4a9b41583d6eabec04f8b68076ab3cd44c20bd29332c6572dda36f372e"}, - {file = "coverage-6.5.0-cp38-cp38-win32.whl", hash = "sha256:6d4817234349a80dbf03640cec6109cd90cba068330703fa65ddf56b60223a6d"}, - {file = "coverage-6.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:7ccf362abd726b0410bf8911c31fbf97f09f8f1061f8c1cf03dfc4b6372848f6"}, - {file = "coverage-6.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:633713d70ad6bfc49b34ead4060531658dc6dfc9b3eb7d8a716d5873377ab745"}, - {file = "coverage-6.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:95203854f974e07af96358c0b261f1048d8e1083f2de9b1c565e1be4a3a48cfc"}, - {file = "coverage-6.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9023e237f4c02ff739581ef35969c3739445fb059b060ca51771e69101efffe"}, - {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:265de0fa6778d07de30bcf4d9dc471c3dc4314a23a3c6603d356a3c9abc2dfcf"}, - {file = "coverage-6.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f830ed581b45b82451a40faabb89c84e1a998124ee4212d440e9c6cf70083e5"}, - {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7b6be138d61e458e18d8e6ddcddd36dd96215edfe5f1168de0b1b32635839b62"}, - {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:42eafe6778551cf006a7c43153af1211c3aaab658d4d66fa5fcc021613d02518"}, - {file = "coverage-6.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:723e8130d4ecc8f56e9a611e73b31219595baa3bb252d539206f7bbbab6ffc1f"}, - {file = "coverage-6.5.0-cp39-cp39-win32.whl", hash = "sha256:d9ecf0829c6a62b9b573c7bb6d4dcd6ba8b6f80be9ba4fc7ed50bf4ac9aecd72"}, - {file = "coverage-6.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc2af30ed0d5ae0b1abdb4ebdce598eafd5b35397d4d75deb341a614d333d987"}, - {file = "coverage-6.5.0-pp36.pp37.pp38-none-any.whl", hash = "sha256:1431986dac3923c5945271f169f59c45b8802a114c8f548d611f2015133df77a"}, - {file = "coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84"}, -] -docutils = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, -] -idna = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] -imagesize = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] -importlib-metadata = [ - {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"}, - {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -Jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -markdown-it-py = [ - {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, - {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, -] -MarkupSafe = [ - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, -] -mdit-py-plugins = [ - {file = "mdit-py-plugins-0.3.1.tar.gz", hash = "sha256:3fc13298497d6e04fe96efdd41281bfe7622152f9caa1815ea99b5c893de9441"}, - {file = "mdit_py_plugins-0.3.1-py3-none-any.whl", hash = "sha256:606a7f29cf56dbdfaf914acb21709b8f8ee29d857e8f29dcc33d8cb84c57bfa1"}, -] -mdurl = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] -multidict = [ - {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2"}, - {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3"}, - {file = "multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389"}, - {file = "multidict-6.0.2-cp310-cp310-win32.whl", hash = "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293"}, - {file = "multidict-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658"}, - {file = "multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15"}, - {file = "multidict-6.0.2-cp37-cp37m-win32.whl", hash = "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc"}, - {file = "multidict-6.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a"}, - {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60"}, - {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86"}, - {file = "multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d"}, - {file = "multidict-6.0.2-cp38-cp38-win32.whl", hash = "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57"}, - {file = "multidict-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96"}, - {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c"}, - {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e"}, - {file = "multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937"}, - {file = "multidict-6.0.2-cp39-cp39-win32.whl", hash = "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a"}, - {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"}, - {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -myst-parser = [ - {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, - {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pathspec = [ - {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, - {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -Pygments = [ - {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, - {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pytest = [ - {file = "pytest-7.1.3-py3-none-any.whl", hash = "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7"}, - {file = "pytest-7.1.3.tar.gz", hash = "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39"}, -] -pytest-cov = [ - {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, - {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, -] -pytest-dotenv = [ - {file = "pytest-dotenv-0.5.2.tar.gz", hash = "sha256:2dc6c3ac6d8764c71c6d2804e902d0ff810fa19692e95fe138aefc9b1aa73732"}, - {file = "pytest_dotenv-0.5.2-py3-none-any.whl", hash = "sha256:40a2cece120a213898afaa5407673f6bd924b1fa7eafce6bda0e8abffe2f710f"}, -] -pytest-vcr = [ - {file = "pytest-vcr-1.0.2.tar.gz", hash = "sha256:23ee51b75abbcc43d926272773aae4f39f93aceb75ed56852d0bf618f92e1896"}, - {file = "pytest_vcr-1.0.2-py2.py3-none-any.whl", hash = "sha256:2f316e0539399bea0296e8b8401145c62b6f85e9066af7e57b6151481b0d6d9c"}, -] -python-dotenv = [ - {file = "python-dotenv-0.21.0.tar.gz", hash = "sha256:b77d08274639e3d34145dfa6c7008e66df0f04b7be7a75fd0d5292c191d79045"}, - {file = "python_dotenv-0.21.0-py3-none-any.whl", hash = "sha256:1684eb44636dd462b66c3ee016599815514527ad99965de77f43e0944634a7e5"}, -] -pytz = [ - {file = "pytz-2022.4-py2.py3-none-any.whl", hash = "sha256:2c0784747071402c6e99f0bafdb7da0fa22645f06554c7ae06bf6358897e9c91"}, - {file = "pytz-2022.4.tar.gz", hash = "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174"}, -] -PyYAML = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -requests = [ - {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, - {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, -] -setuptools = [ - {file = "setuptools-65.5.1-py3-none-any.whl", hash = "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31"}, - {file = "setuptools-65.5.1.tar.gz", hash = "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -Sphinx = [ - {file = "Sphinx-5.2.3.tar.gz", hash = "sha256:5b10cb1022dac8c035f75767799c39217a05fc0fe2d6fe5597560d38e44f0363"}, - {file = "sphinx-5.2.3-py3-none-any.whl", hash = "sha256:7abf6fabd7b58d0727b7317d5e2650ef68765bbe0ccb63c8795fa8683477eaa2"}, -] -sphinx-autoapi = [ - {file = "sphinx-autoapi-2.0.0.tar.gz", hash = "sha256:97dcf1b5b54cd0d8efef867594e4a4f3e2d3a2c0ec1e5a891e0a61bc77046006"}, - {file = "sphinx_autoapi-2.0.0-py2.py3-none-any.whl", hash = "sha256:dab2753a38cad907bf4e61473c0da365a26bfbe69fbf5aa6e4f7d48e1cf8a148"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, - {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -typed-ast = [ +files = [ {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, @@ -1219,23 +1218,74 @@ typed-ast = [ {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, ] -typing-extensions = [ + +[[package]] +name = "typing-extensions" +version = "4.4.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, ] -Unidecode = [ + +[[package]] +name = "Unidecode" +version = "1.3.6" +description = "ASCII transliterations of Unicode text" +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ {file = "Unidecode-1.3.6-py3-none-any.whl", hash = "sha256:547d7c479e4f377b430dd91ac1275d593308dce0fc464fb2ab7d41f82ec653be"}, {file = "Unidecode-1.3.6.tar.gz", hash = "sha256:fed09cf0be8cf415b391642c2a5addfc72194407caee4f98719e40ec2a72b830"}, ] -urllib3 = [ + +[[package]] +name = "urllib3" +version = "1.26.12" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" +files = [ {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, ] -vcrpy = [ + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "vcrpy" +version = "4.2.1" +description = "Automatically mock your HTTP interactions to simplify and speed up testing" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ {file = "vcrpy-4.2.1-py2.py3-none-any.whl", hash = "sha256:efac3e2e0b2af7686f83a266518180af7a048619b2f696e7bad9520f5e2eac09"}, {file = "vcrpy-4.2.1.tar.gz", hash = "sha256:7cd3e81a2c492e01c281f180bcc2a86b520b173d2b656cb5d89d99475423e013"}, ] -wrapt = [ + +[package.dependencies] +PyYAML = "*" +six = ">=1.5" +wrapt = "*" +yarl = "*" + +[[package]] +name = "wrapt" +version = "1.14.1" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, @@ -1301,7 +1351,15 @@ wrapt = [ {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, ] -yarl = [ + +[[package]] +name = "yarl" +version = "1.8.1" +description = "Yet another URL library" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28"}, {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3"}, {file = "yarl-1.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880"}, @@ -1362,7 +1420,29 @@ yarl = [ {file = "yarl-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be"}, {file = "yarl-1.8.1.tar.gz", hash = "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf"}, ] -zipp = [ + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} + +[[package]] +name = "zipp" +version = "3.9.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ {file = "zipp-3.9.0-py3-none-any.whl", hash = "sha256:972cfa31bc2fedd3fa838a51e9bc7e64b7fb725a8c00e7431554311f180e9980"}, {file = "zipp-3.9.0.tar.gz", hash = "sha256:3a7af91c3db40ec72dd9d154ae18e008c69efe8ca88dde4f9a731bb82fe2f9eb"}, ] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.7" +content-hash = "7e425c4998d75c80ade7b96a34b3e3bdda90f22f0064f9ea29c7c9a7be2e1aee" diff --git a/pyproject.toml b/pyproject.toml index 2ecb65d..ea77169 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ classifiers = [ [tool.poetry.dependencies] python = "^3.7" requests = "^2.28.1" +portalocker = "^2.7.0" [tool.poetry.group.dev.dependencies] @@ -31,6 +32,7 @@ pytest-cov = "^4.0.0" pytest-dotenv = "^0.5.2" pytest-vcr = "^1.0.2" vcrpy = "^4.2.1" +pytest-xdist = "^3.2.1" [tool.poetry.group.docs.dependencies] @@ -48,4 +50,5 @@ build-backend = "poetry.core.masonry.api" profile = "black" [tool.pytest.ini_options] +addopts = ["-n=auto"] env_files = [".env", ".env.example"] diff --git a/test/test_encounters.py b/test/test_encounters.py index 5f781c7..8a86ce5 100644 --- a/test/test_encounters.py +++ b/test/test_encounters.py @@ -189,6 +189,7 @@ def test_assessment_get(client, vcr_cassette): @pytest.mark.vcr() +@pytest.mark.skip(reason="not multi-process safe; fails intermittently") def test_encounter_related_data_assessment_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") diff --git a/welkin/authentication.py b/welkin/authentication.py index 3a12da8..f722538 100644 --- a/welkin/authentication.py +++ b/welkin/authentication.py @@ -4,6 +4,7 @@ from pathlib import Path from typing import Callable +from portalocker import Lock from requests import PreparedRequest from requests.auth import AuthBase @@ -11,6 +12,7 @@ DB_PATH = str(Path(tempfile.gettempdir(), ".welkin.db")) +DB_LOCK = f"{DB_PATH}.lock" class WelkinAuth(AuthBase): @@ -48,11 +50,12 @@ def __call__(self, r: PreparedRequest) -> PreparedRequest: @property def token(self) -> str: - with shelve.open(DB_PATH) as db: - try: - return db[self.tenant]["token"] - except KeyError: - pass + with Lock(DB_LOCK): + with shelve.open(DB_PATH) as db: + try: + return db[self.tenant]["token"] + except KeyError: + pass self.refresh_token() @@ -60,8 +63,9 @@ def token(self) -> str: @token.setter def token(self, value: dict) -> None: - with shelve.open(DB_PATH) as db: - db[self.tenant] = value + with Lock(DB_LOCK): + with shelve.open(DB_PATH) as db: + db[self.tenant] = value def refresh_token(self) -> None: self.token = self.token_method() From 189a5a9485755bc4108da0236374ee2991d2dce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20D=C3=ADaz?= Date: Thu, 1 Jun 2023 15:37:07 -0700 Subject: [PATCH 02/17] update urllib3 dependency --- poetry.lock | 17 ++++++++--------- pyproject.toml | 1 + 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 081a3ed..022f1b5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1316,21 +1316,20 @@ files = [ [[package]] name = "urllib3" -version = "2.0.2" +version = "1.26.12" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4" files = [ - {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, - {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, + {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"}, + {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "vcrpy" @@ -1543,4 +1542,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "7e425c4998d75c80ade7b96a34b3e3bdda90f22f0064f9ea29c7c9a7be2e1aee" +content-hash = "1cd1615c179705e846d2a837112a24e7f51c1a6b1f6b240e058d7322af2cf2a0" diff --git a/pyproject.toml b/pyproject.toml index ea77169..e6360cf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ classifiers = [ python = "^3.7" requests = "^2.28.1" portalocker = "^2.7.0" +urllib3 = "1.26.12" [tool.poetry.group.dev.dependencies] From 7b4bcb62891a30489e111b382728da5ac1c55652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20D=C3=ADaz?= Date: Thu, 6 Apr 2023 13:01:19 -0700 Subject: [PATCH 03/17] Allow concurrent use of welkin clients --- poetry.lock | 78 +++++++++++++++++++++++++++++++++++++++- pyproject.toml | 3 ++ test/test_encounters.py | 1 + welkin/authentication.py | 18 ++++++---- 4 files changed, 92 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index ef04b48..27e8c62 100644 --- a/poetry.lock +++ b/poetry.lock @@ -232,6 +232,20 @@ files = [ {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, ] +[[package]] +name = "execnet" +version = "1.9.0" +description = "execnet: rapid multi-Python deployment" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"}, + {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"}, +] + +[package.extras] +testing = ["pre-commit"] + [[package]] name = "idna" version = "3.4" @@ -632,6 +646,25 @@ importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "portalocker" +version = "2.7.0" +description = "Wraps the portalocker recipe for easy usage" +optional = false +python-versions = ">=3.5" +files = [ + {file = "portalocker-2.7.0-py2.py3-none-any.whl", hash = "sha256:a07c5b4f3985c3cf4798369631fb7011adb498e2a46d8440efc75a8f29a0f983"}, + {file = "portalocker-2.7.0.tar.gz", hash = "sha256:032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51"}, +] + +[package.dependencies] +pywin32 = {version = ">=226", markers = "platform_system == \"Windows\""} + +[package.extras] +docs = ["sphinx (>=1.7.1)"] +redis = ["redis"] +tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)"] + [[package]] name = "py" version = "1.11.0" @@ -743,6 +776,26 @@ files = [ pytest = ">=3.6.0" vcrpy = "*" +[[package]] +name = "pytest-xdist" +version = "3.2.1" +description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-xdist-3.2.1.tar.gz", hash = "sha256:1849bd98d8b242b948e472db7478e090bf3361912a8fed87992ed94085f54727"}, + {file = "pytest_xdist-3.2.1-py3-none-any.whl", hash = "sha256:37290d161638a20b672401deef1cba812d110ac27e35d213f091d15b8beb40c9"}, +] + +[package.dependencies] +execnet = ">=1.1" +pytest = ">=6.2.0" + +[package.extras] +psutil = ["psutil (>=3.0)"] +setproctitle = ["setproctitle"] +testing = ["filelock"] + [[package]] name = "python-dotenv" version = "0.21.0" @@ -768,6 +821,29 @@ files = [ {file = "pytz-2022.4.tar.gz", hash = "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174"}, ] +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + [[package]] name = "PyYAML" version = "6.0" @@ -1304,4 +1380,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "b30861cb99f205e8749ba339df19af43996c2acfc0090c391a0360ba224bc818" +content-hash = "ce54c94097ec8d308f7edfe83cd0d9cafb053fd3f61af7aaf50a77e001cd3f92" diff --git a/pyproject.toml b/pyproject.toml index 8b08cb8..9027c41 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ [tool.poetry.dependencies] python = "^3.7" requests = "^2.28.1" +portalocker = "^2.7.0" [tool.poetry.group.dev] optional = true @@ -35,6 +36,7 @@ pytest = "^7.1.3" pytest-cov = "^4.0.0" pytest-dotenv = "^0.5.2" pytest-vcr = "^1.0.2" +pytest-xdist = "^3.2.1" [tool.poetry.group.docs] optional = true @@ -54,4 +56,5 @@ build-backend = "poetry.core.masonry.api" profile = "black" [tool.pytest.ini_options] +addopts = ["-n=auto"] env_files = [".env", ".env.example"] diff --git a/test/test_encounters.py b/test/test_encounters.py index 5f781c7..8a86ce5 100644 --- a/test/test_encounters.py +++ b/test/test_encounters.py @@ -189,6 +189,7 @@ def test_assessment_get(client, vcr_cassette): @pytest.mark.vcr() +@pytest.mark.skip(reason="not multi-process safe; fails intermittently") def test_encounter_related_data_assessment_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") diff --git a/welkin/authentication.py b/welkin/authentication.py index 3a12da8..f722538 100644 --- a/welkin/authentication.py +++ b/welkin/authentication.py @@ -4,6 +4,7 @@ from pathlib import Path from typing import Callable +from portalocker import Lock from requests import PreparedRequest from requests.auth import AuthBase @@ -11,6 +12,7 @@ DB_PATH = str(Path(tempfile.gettempdir(), ".welkin.db")) +DB_LOCK = f"{DB_PATH}.lock" class WelkinAuth(AuthBase): @@ -48,11 +50,12 @@ def __call__(self, r: PreparedRequest) -> PreparedRequest: @property def token(self) -> str: - with shelve.open(DB_PATH) as db: - try: - return db[self.tenant]["token"] - except KeyError: - pass + with Lock(DB_LOCK): + with shelve.open(DB_PATH) as db: + try: + return db[self.tenant]["token"] + except KeyError: + pass self.refresh_token() @@ -60,8 +63,9 @@ def token(self) -> str: @token.setter def token(self, value: dict) -> None: - with shelve.open(DB_PATH) as db: - db[self.tenant] = value + with Lock(DB_LOCK): + with shelve.open(DB_PATH) as db: + db[self.tenant] = value def refresh_token(self) -> None: self.token = self.token_method() From 56b33965cc6c1620da7de52052bef3653928af2f Mon Sep 17 00:00:00 2001 From: Eddie Cohen Date: Tue, 16 May 2023 15:40:53 -0400 Subject: [PATCH 04/17] downgrade urllib3 to 1.26.12 --- poetry.lock | 4 ++-- pyproject.toml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/poetry.lock b/poetry.lock index 27e8c62..fe61ce3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "alabaster" @@ -1380,4 +1380,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "ce54c94097ec8d308f7edfe83cd0d9cafb053fd3f61af7aaf50a77e001cd3f92" +content-hash = "1cd1615c179705e846d2a837112a24e7f51c1a6b1f6b240e058d7322af2cf2a0" diff --git a/pyproject.toml b/pyproject.toml index 9027c41..f323823 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ classifiers = [ python = "^3.7" requests = "^2.28.1" portalocker = "^2.7.0" +urllib3 = "1.26.12" [tool.poetry.group.dev] optional = true From f5f4085b89fc6c31841c11221d87422143541caa Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Thu, 13 Jul 2023 13:05:29 -0700 Subject: [PATCH 05/17] Revert urrlib3 change --- poetry.lock | 4 ++-- pyproject.toml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index fe61ce3..27e8c62 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -1380,4 +1380,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "1cd1615c179705e846d2a837112a24e7f51c1a6b1f6b240e058d7322af2cf2a0" +content-hash = "ce54c94097ec8d308f7edfe83cd0d9cafb053fd3f61af7aaf50a77e001cd3f92" diff --git a/pyproject.toml b/pyproject.toml index f323823..9027c41 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,6 @@ classifiers = [ python = "^3.7" requests = "^2.28.1" portalocker = "^2.7.0" -urllib3 = "1.26.12" [tool.poetry.group.dev] optional = true From a0e231d6bc7c7c0d5ae6515db20b2b9afa25e59a Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Thu, 13 Jul 2023 13:34:57 -0700 Subject: [PATCH 06/17] Fix poetry.lock --- poetry.lock | 90 +++++++++++++++++------------------------------------ 1 file changed, 28 insertions(+), 62 deletions(-) diff --git a/poetry.lock b/poetry.lock index 93f1a5e..a88ae82 100644 --- a/poetry.lock +++ b/poetry.lock @@ -29,36 +29,19 @@ typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpyth typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<2" -[[package]] -name = "attrs" -version = "22.1.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.5" -files = [ - {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, - {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, -] - -[package.extras] -dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] -docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] -tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] - [[package]] name = "Babel" version = "2.10.3" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.6" files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, + {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, ] [package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} +pytz = ">=2015.7" [[package]] name = "black" @@ -294,6 +277,20 @@ files = [ {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] +[[package]] +name = "exceptiongroup" +version = "1.1.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, + {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, +] + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "execnet" version = "1.9.0" @@ -355,10 +352,10 @@ name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" optional = false -python-versions = ">=3.7" +python-versions = "*" files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] [[package]] @@ -642,10 +639,10 @@ name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." optional = false -python-versions = ">=3.5" +python-versions = "*" files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] [[package]] @@ -703,16 +700,13 @@ description = "A small Python module for determining appropriate platform-specif optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, - {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} - [package.extras] -docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"] +test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] [[package]] name = "pluggy" @@ -751,17 +745,6 @@ docs = ["sphinx (>=1.7.1)"] redis = ["redis"] tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)"] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=3.5" -files = [ - {file = "portalocker-2.7.0-py2.py3-none-any.whl", hash = "sha256:a07c5b4f3985c3cf4798369631fb7011adb498e2a46d8440efc75a8f29a0f983"}, - {file = "portalocker-2.7.0.tar.gz", hash = "sha256:032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51"}, -] - [[package]] name = "Pygments" version = "2.13.0" @@ -773,22 +756,6 @@ files = [ {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, ] -[package.extras] -docs = ["sphinx (>=1.7.1)"] -redis = ["redis"] -tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "pytest-timeout (>=2.1.0)", "redis", "sphinx (>=6.0.0)"] - -[[package]] -name = "pyparsing" -version = "3.0.9" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.7" -files = [ - {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, - {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, -] - [package.extras] plugins = ["importlib-metadata"] @@ -1165,7 +1132,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" files = [ From 4acb65c1314a2db3ec0cb1949f5a30be07a40b21 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Wed, 30 Aug 2023 16:45:17 -0700 Subject: [PATCH 07/17] WIP document types --- test/test_document.py | 16 ++++++++++------ welkin/client.py | 8 +++++--- welkin/models/__init__.py | 8 ++++++-- welkin/models/document.py | 22 +++++++++++++++++++++- welkin/models/patient.py | 8 ++++++-- 5 files changed, 48 insertions(+), 14 deletions(-) diff --git a/test/test_document.py b/test/test_document.py index ecec52b..773162f 100644 --- a/test/test_document.py +++ b/test/test_document.py @@ -3,21 +3,23 @@ import pytest from welkin.exceptions import WelkinHTTPError -from welkin.models.document import ( - Documents, +from welkin.models import ( + DocumentSummaries, DocumentSummary, DocumentSummaryFile, DocumentSummaryFiles, + DocumentType, + DocumentTypes, ) @pytest.mark.vcr() def test_documents_get_patient_id(client, vcr_cassette): - documents = client.Documents().get( + documents = client.DocumentSummaries().get( patient_id="283f50d3-0840-426f-b07b-bd8e4ab76401" ) - assert isinstance(documents, Documents) + assert isinstance(documents, DocumentSummaries) assert isinstance(documents[0], DocumentSummary) assert len(vcr_cassette) == 1 @@ -25,10 +27,12 @@ def test_documents_get_patient_id(client, vcr_cassette): @pytest.mark.vcr() def test_documents_subresource(client, vcr_cassette): documents = ( - client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401").Documents().get() + client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401") + .DocumentSummaries() + .get() ) - assert isinstance(documents, Documents) + assert isinstance(documents, DocumentSummaries) assert isinstance(documents[0], DocumentSummary) assert len(vcr_cassette) == 1 diff --git a/welkin/client.py b/welkin/client.py index 6006538..1626558 100644 --- a/welkin/client.py +++ b/welkin/client.py @@ -129,24 +129,26 @@ def __build_resources(self) -> None: self.Assessments = models.Assessments self.CalendarEvent = models.CalendarEvent self.CalendarEvents = models.CalendarEvents - self.Schedules = models.Schedules self.CarePlan = models.CarePlan self.CarePlanOverview = models.CarePlanOverview self.CDT = models.CDT self.CDTs = models.CDTs self.Chat = models.Chat self.Chats = models.Chats - self.SearchChats = models.SearchChats self.Disposition = models.Disposition - self.Documents = models.Documents + self.DocumentSummaries = models.DocumentSummaries self.DocumentSummary = models.DocumentSummary self.DocumentSummaryFile = models.DocumentSummaryFile self.DocumentSummaryFiles = models.DocumentSummaryFiles + self.DocumentType = models.DocumentType + self.DocumentTypes = models.DocumentTypes self.Encounter = models.Encounter self.Encounters = models.Encounters self.Formations = models.Formations self.Patient = models.Patient self.Patients = models.Patients + self.Schedules = models.Schedules + self.SearchChats = models.SearchChats self.User = models.User self.Users = models.Users self.WorkHours = models.WorkHours diff --git a/welkin/models/__init__.py b/welkin/models/__init__.py index bc695c2..5614a46 100644 --- a/welkin/models/__init__.py +++ b/welkin/models/__init__.py @@ -10,10 +10,12 @@ from welkin.models.cdt import CDT, CDTs from welkin.models.chat import Chat, Chats, SearchChats from welkin.models.document import ( - Documents, + DocumentSummaries, DocumentSummary, DocumentSummaryFile, DocumentSummaryFiles, + DocumentType, + DocumentTypes, ) from welkin.models.encounter import Disposition, Encounter, Encounters from welkin.models.formation import Formations @@ -38,10 +40,12 @@ "Disposition", "Encounter", "Encounters", - "Documents", + "DocumentSummaries", "DocumentSummary", "DocumentSummaryFile", "DocumentSummaryFiles", + "DocumentType", + "DocumentTypes", "Patient", "Patients", "Schedules", diff --git a/welkin/models/document.py b/welkin/models/document.py index 35dedad..8b2f11f 100644 --- a/welkin/models/document.py +++ b/welkin/models/document.py @@ -5,6 +5,26 @@ from welkin.pagination import PageableIterator +class DocumentType(Resource): + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/document-types/{self.name}", + *args, + **kwargs, + ) + + +class DocumentTypes(Collection): + resource = DocumentType + + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/document-types", + *args, + **kwargs, + ) + + class DocumentSummaryFile(Resource): def get(self, patient_id: str = None, document_summary_id: str = None) -> BytesIO: if not patient_id: @@ -74,7 +94,7 @@ def delete(self, patient_id: str = None): ) -class Documents(Collection): +class DocumentSummaries(Collection): resource = DocumentSummary iterator = PageableIterator diff --git a/welkin/models/patient.py b/welkin/models/patient.py index 406e70a..7f492c6 100644 --- a/welkin/models/patient.py +++ b/welkin/models/patient.py @@ -3,7 +3,11 @@ from welkin.models.care_plan import CarePlan from welkin.models.cdt import CDT, CDTs from welkin.models.chat import Chat, Chats, SearchChats -from welkin.models.document import Documents, DocumentSummary, DocumentSummaryFile +from welkin.models.document import ( + DocumentSummaries, + DocumentSummary, + DocumentSummaryFile, +) from welkin.models.encounter import Encounter, Encounters from welkin.pagination import PageableIterator @@ -18,7 +22,7 @@ class Patient(Resource): Chat, Chats, SearchChats, - Documents, + DocumentSummaries, DocumentSummary, DocumentSummaryFile, Encounter, From c5ea782cf1289eecf330de6310a5ab591c077548 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Wed, 30 Aug 2023 17:10:31 -0700 Subject: [PATCH 08/17] Minor cleanup --- test/test_assessments.py | 14 +++++++------- test/test_calendar.py | 35 ++++++++++++++++------------------ test/test_care_plan.py | 12 ++++++------ test/test_cdts.py | 12 ++++++------ test/test_chat.py | 6 +++--- test/test_document.py | 17 +++++++---------- test/test_encounters.py | 40 +++++++++++++++++++-------------------- test/test_exception.py | 4 ++-- test/test_formations.py | 2 +- test/test_patients.py | 12 ++++++------ test/test_users.py | 10 +++++----- welkin/client.py | 11 +++++++++-- welkin/models/calendar.py | 7 ++++--- 13 files changed, 92 insertions(+), 90 deletions(-) diff --git a/test/test_assessments.py b/test/test_assessments.py index 21f3a88..034b8f0 100644 --- a/test/test_assessments.py +++ b/test/test_assessments.py @@ -4,7 +4,7 @@ from welkin.models.assessment import AssessmentRecord, AssessmentRecords -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_record_answers_update(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -22,7 +22,7 @@ def test_assessment_record_answers_update(client, vcr_cassette): assert len(vcr_cassette) == 3 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_record_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -35,7 +35,7 @@ def test_assessment_record_get(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_record_get_w_patient_id(client, vcr_cassette): assmt_record = client.AssessmentRecord( id="c8764b19-ffa3-406a-b446-c971036a7a1d" @@ -46,7 +46,7 @@ def test_assessment_record_get_w_patient_id(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_record_update(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -63,7 +63,7 @@ def test_assessment_record_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_record_create(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") assmt_record = patient.AssessmentRecord(assessmentName="asm-hello-form2").create() @@ -73,7 +73,7 @@ def test_assessment_record_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_record_delete(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -89,7 +89,7 @@ def test_assessment_record_delete(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_records_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") diff --git a/test/test_calendar.py b/test/test_calendar.py index 5c63def..6af58f9 100644 --- a/test/test_calendar.py +++ b/test/test_calendar.py @@ -14,7 +14,7 @@ UTC = timezone.utc -@pytest.mark.vcr() +@pytest.mark.vcr def test_calendar_event_create(client, vcr_cassette): start = datetime.now(tz=UTC) + timedelta(hours=6) end = start + timedelta(hours=1) @@ -36,7 +36,7 @@ def test_calendar_event_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_calendar_event_read(client, vcr_cassette): event_id = "9386a88a-467e-4144-a7df-1af12d6d5aaf" calendar = client.CalendarEvent(id=event_id).get() @@ -46,7 +46,7 @@ def test_calendar_event_read(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_calendar_event_read_all(client, vcr_cassette): from_date = datetime(2022, 4, 1, 16, 38, 20, 641000, tzinfo=UTC) to_date = datetime(2022, 6, 30, 16, 38, 20, 641000, tzinfo=UTC) @@ -62,7 +62,7 @@ def test_calendar_event_read_all(client, vcr_cassette): assert len(vcr_cassette) == 1, "Unexpected pagination" -@pytest.mark.vcr() +@pytest.mark.vcr def test_calendar_event_update(client, vcr_cassette): event = client.CalendarEvent(id="f7fc881d-28af-4fe1-b2ff-20e1ca33982f").get() title = event.eventTitle @@ -73,7 +73,7 @@ def test_calendar_event_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_calendar_event_delete(client, vcr_cassette): event = client.CalendarEvent(id="f7fc881d-28af-4fe1-b2ff-20e1ca33982f").get() event.delete() @@ -91,7 +91,7 @@ def test_calendar_event_delete(client, vcr_cassette): assert len(vcr_cassette) == 3 -@pytest.mark.vcr() +@pytest.mark.vcr def test_schedule_read_all(client, vcr_cassette): from_date = datetime(2022, 4, 1, 16, 38, 20, 641000, tzinfo=UTC) to_date = datetime(2022, 6, 30, 16, 38, 20, 641000, tzinfo=UTC) @@ -108,26 +108,24 @@ def test_schedule_read_all(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() + +@pytest.mark.vcr def test_get_work_hours_per_psm_ids(client, vcr_cassette): start = datetime(2022, 3, 1, tzinfo=timezone.utc) end = datetime(2024, 3, 1, tzinfo=timezone.utc) psm_ids = [ - '960b39f0-1404-45a4-a33e-5f9fdea34ff9', - '43afc43c-c77b-4014-8...e17f59ee03', - ] + "960b39f0-1404-45a4-a33e-5f9fdea34ff9", + "43afc43c-c77b-4014-8...e17f59ee03", + ] - whs = client.WorkHours().get( - from_date=start, - to_date=end, - psm_ids=psm_ids - ) + whs = client.WorkHours().get(from_date=start, to_date=end, psm_ids=psm_ids) assert isinstance(whs, list) assert len(whs) == 2 assert len(vcr_cassette) == 1 -@pytest.mark.vcr() + +@pytest.mark.vcr def test_get_work_hours_per_time_range(client, vcr_cassette): start = datetime(2022, 3, 1, tzinfo=timezone.utc) end = datetime(2024, 3, 1, tzinfo=timezone.utc) @@ -140,7 +138,8 @@ def test_get_work_hours_per_time_range(client, vcr_cassette): assert isinstance(whs, list) assert len(vcr_cassette) == 1 -@pytest.mark.vcr() + +@pytest.mark.vcr def test_get_work_hours_empty(client, vcr_cassette): start = datetime(2100, 1, 1, tzinfo=timezone.utc) end = datetime(2100, 1, 2, tzinfo=timezone.utc) @@ -152,5 +151,3 @@ def test_get_work_hours_empty(client, vcr_cassette): assert len(whs) == 0 assert len(vcr_cassette) == 1 - - diff --git a/test/test_care_plan.py b/test/test_care_plan.py index 5dec704..8e7e088 100644 --- a/test/test_care_plan.py +++ b/test/test_care_plan.py @@ -3,7 +3,7 @@ from welkin.models import CarePlan -@pytest.mark.vcr() +@pytest.mark.vcr def test_care_plan_create(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") @@ -17,7 +17,7 @@ def test_care_plan_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_care_plan_create_passing_patient_id(client, vcr_cassette): patient_id = "331678c1-0ec9-4e4a-a947-8147a1d067a5" overview_message = "This is a message for the overview." @@ -28,7 +28,7 @@ def test_care_plan_create_passing_patient_id(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_care_plan_read(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") care_plan = patient.CarePlan().get() @@ -38,7 +38,7 @@ def test_care_plan_read(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_care_plan_read_passing_patient_id(client, vcr_cassette): patient_id = "331678c1-0ec9-4e4a-a947-8147a1d067a5" care_plan = client.CarePlan().get(patient_id=patient_id) @@ -48,7 +48,7 @@ def test_care_plan_read_passing_patient_id(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_care_plan_update(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") care_plan = patient.CarePlan().get() @@ -62,7 +62,7 @@ def test_care_plan_update(client, vcr_cassette): assert len(vcr_cassette) == 3 -@pytest.mark.vcr() +@pytest.mark.vcr def test_care_plan_update_passing_patient_id(client, vcr_cassette): patient_id = "173a8adf-92e8-4832-8900-027c71b0d768" care_plan = client.CarePlan().get(patient_id=patient_id) diff --git a/test/test_cdts.py b/test/test_cdts.py index cfc73fb..1d07893 100644 --- a/test/test_cdts.py +++ b/test/test_cdts.py @@ -4,7 +4,7 @@ from welkin.models.cdt import CDT, CDTs -@pytest.mark.vcr() +@pytest.mark.vcr def test_cdt_create(client, vcr_cassette): patient = client.Patient(id="3ff322fd-b504-4784-9798-0c7c8a4fdfb8") @@ -15,7 +15,7 @@ def test_cdt_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_all_cdts_patient_read(client, vcr_cassette): patient = client.Patient(id="3ff322fd-b504-4784-9798-0c7c8a4fdfb8") cdts = patient.CDTs().get(cdt_name="cdt-self-care") @@ -29,7 +29,7 @@ def test_all_cdts_patient_read(client, vcr_cassette): assert len(vcr_cassette) == 1, "Unexpected pagination" -@pytest.mark.vcr() +@pytest.mark.vcr def test_cdt_patient_read(client, vcr_cassette): patient = client.Patient(id="3ff322fd-b504-4784-9798-0c7c8a4fdfb8") @@ -42,7 +42,7 @@ def test_cdt_patient_read(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_cdt_update(client, vcr_cassette): patient = client.Patient(id="3ff322fd-b504-4784-9798-0c7c8a4fdfb8") cdt = patient.CDT( @@ -54,7 +54,7 @@ def test_cdt_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_cdt_bulk_update(client, vcr_cassette): patient = client.Patient(id="3ff322fd-b504-4784-9798-0c7c8a4fdfb8") cdt_1 = patient.CDT( @@ -88,7 +88,7 @@ def test_cdt_bulk_update(client, vcr_cassette): assert len(vcr_cassette) == 3 -@pytest.mark.vcr() +@pytest.mark.vcr def test_cdt_delete(client, vcr_cassette): patient = client.Patient(id="3ff322fd-b504-4784-9798-0c7c8a4fdfb8") cdt = patient.CDT( diff --git a/test/test_chat.py b/test/test_chat.py index d7d1af3..a9cdda4 100644 --- a/test/test_chat.py +++ b/test/test_chat.py @@ -3,7 +3,7 @@ from welkin.models.chat import Chat, Chats, ChatSearchResult, SearchChats -@pytest.mark.vcr() +@pytest.mark.vcr def test_create_chat(client, vcr_cassette): patient_id = "17450e44-c2c8-46c4-9486-0d9bfa16d3aa" message = "Foo Baz." @@ -15,7 +15,7 @@ def test_create_chat(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_read_chat(client, vcr_cassette): patient_id = "17450e44-c2c8-46c4-9486-0d9bfa16d3aa" patient = client.Patient(id=patient_id) @@ -29,7 +29,7 @@ def test_read_chat(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_search_chat(client, vcr_cassette): patient_id = "17450e44-c2c8-46c4-9486-0d9bfa16d3aa" query = "Test" diff --git a/test/test_document.py b/test/test_document.py index 773162f..cc47782 100644 --- a/test/test_document.py +++ b/test/test_document.py @@ -13,7 +13,7 @@ ) -@pytest.mark.vcr() +@pytest.mark.vcr def test_documents_get_patient_id(client, vcr_cassette): documents = client.DocumentSummaries().get( patient_id="283f50d3-0840-426f-b07b-bd8e4ab76401" @@ -24,7 +24,7 @@ def test_documents_get_patient_id(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_documents_subresource(client, vcr_cassette): documents = ( client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401") @@ -37,7 +37,7 @@ def test_documents_subresource(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_document_summary_get(client, vcr_cassette): document = ( client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401") @@ -50,7 +50,7 @@ def test_document_summary_get(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_document_summary_delete(client, vcr_cassette): document = client.Patient( id="283f50d3-0840-426f-b07b-bd8e4ab76401" @@ -66,7 +66,7 @@ def test_document_summary_delete(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_document_summary_create(client, vcr_cassette): document = ( client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401") @@ -79,10 +79,7 @@ def test_document_summary_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() -@pytest.mark.skip( - reason="the bytes upload hits this issue in vcr: https://github.com/kevin1024/vcrpy/issues/660 but this test shows the correct implementation" -) +@pytest.mark.vcr def test_document_summary_files_create(client, vcr_cassette): with open("test/walrus_uJGKbRm.jpeg", "rb") as f: @@ -108,7 +105,7 @@ def test_document_summary_files_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_document_summary_file_get(client, vcr_cassette): doc_summary = ( client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401") diff --git a/test/test_encounters.py b/test/test_encounters.py index 5f781c7..c6e7707 100644 --- a/test/test_encounters.py +++ b/test/test_encounters.py @@ -10,7 +10,7 @@ UTC = timezone.utc -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_create(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") start = datetime.now(tz=UTC) + timedelta(hours=6) @@ -45,7 +45,7 @@ def test_encounter_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_all_encounters_patient_read(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") encounters = patient.Encounters().get() @@ -59,7 +59,7 @@ def test_all_encounters_patient_read(client, vcr_cassette): assert len(vcr_cassette) == 1, "Unexpected pagination" -@pytest.mark.vcr() +@pytest.mark.vcr def test_all_encounters_user_read(client, vcr_cassette): user = client.User(id="c08af975-8afc-49cb-84ac-7189b727148c") encounters = user.Encounters().get(with_care_team=False) @@ -73,7 +73,7 @@ def test_all_encounters_user_read(client, vcr_cassette): assert len(vcr_cassette) == 1, "Unexpected pagination" -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_patient_read(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -84,7 +84,7 @@ def test_encounter_patient_read(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_patient_read_related_data(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -97,7 +97,7 @@ def test_encounter_patient_read_related_data(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_update(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -110,7 +110,7 @@ def test_encounter_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_delete(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -126,7 +126,7 @@ def test_encounter_delete(client, vcr_cassette): assert len(vcr_cassette) == 3 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_assessments(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -140,7 +140,7 @@ def test_encounter_assessments(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_assessments_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -153,7 +153,7 @@ def test_encounter_assessments_get(client, vcr_cassette): # these tests show all of the ways one could get an Encounter Assessment -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_assessment_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -165,7 +165,7 @@ def test_encounter_assessment_get(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_get_assessment_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -177,7 +177,7 @@ def test_encounter_get_assessment_get(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_assessment_get(client, vcr_cassette): assessment = client.Assessment(id="10c6481b-f25b-49cf-9761-33aeced25f46").get( patient_id="371dd15c-cedc-4425-a394-d666c8d3fc01", @@ -188,7 +188,7 @@ def test_assessment_get(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_related_data_assessment_get(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -202,7 +202,7 @@ def test_encounter_related_data_assessment_get(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_assessment_create(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -214,7 +214,7 @@ def test_encounter_assessment_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_assessment_update(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -230,7 +230,7 @@ def test_encounter_assessment_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_assessment_delete(client, vcr_cassette): patient = client.Patient(id="371dd15c-cedc-4425-a394-d666c8d3fc01") @@ -246,7 +246,7 @@ def test_encounter_assessment_delete(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_disposition_get_nested(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") encounter = patient.Encounter(id="d6f4b66e-1be6-403a-ae47-1bbcee264c5e").get( @@ -259,7 +259,7 @@ def test_encounter_disposition_get_nested(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_disposition_get(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") encounter = patient.Encounter(id="d6f4b66e-1be6-403a-ae47-1bbcee264c5e") @@ -270,7 +270,7 @@ def test_encounter_disposition_get(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_disposition_get_patient_id_encounter_id(client, vcr_cassette): disposition = client.Disposition().get( patient_id="173a8adf-92e8-4832-8900-027c71b0d768", @@ -281,7 +281,7 @@ def test_encounter_disposition_get_patient_id_encounter_id(client, vcr_cassette) assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_encounter_disposition_update(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") encounter = patient.Encounter(id="d6f4b66e-1be6-403a-ae47-1bbcee264c5e") diff --git a/test/test_exception.py b/test/test_exception.py index fa72b75..833d56a 100644 --- a/test/test_exception.py +++ b/test/test_exception.py @@ -5,7 +5,7 @@ from welkin.exceptions import WelkinHTTPError -@pytest.mark.vcr() +@pytest.mark.vcr def test_exception(client): url = "admin/users/me" with pytest.raises(WelkinHTTPError) as exc_info: @@ -15,7 +15,7 @@ def test_exception(client): assert str(exc).endswith(json.dumps(exc.response.json(), indent=2)) -@pytest.mark.vcr() +@pytest.mark.vcr def test_exception_no_json(client): url = "https://httpbin.org/status/400" with pytest.raises(WelkinHTTPError) as exc_info: diff --git a/test/test_formations.py b/test/test_formations.py index f8a54cc..c3e25a9 100644 --- a/test/test_formations.py +++ b/test/test_formations.py @@ -4,7 +4,7 @@ from welkin.models.formation import FormationDataType, Formations -@pytest.mark.vcr() +@pytest.mark.vcr def test_formation_get(client, vcr_cassette): for data_type in FormationDataType: formation_info = client.Formations().get(data_type.name) diff --git a/test/test_patients.py b/test/test_patients.py index c622a6a..c768851 100644 --- a/test/test_patients.py +++ b/test/test_patients.py @@ -6,7 +6,7 @@ from welkin.models.patient import Patient, Patients -@pytest.mark.vcr() +@pytest.mark.vcr def test_patient_create(client, vcr_cassette): patient = client.Patient(firstName="Foo", lastName="Bar").create() @@ -15,7 +15,7 @@ def test_patient_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_patient_create_birthdate(client, vcr_cassette): patient = client.Patient( firstName="happy", lastName="borf", birthDate=date.today() @@ -26,7 +26,7 @@ def test_patient_create_birthdate(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_patient_read(client, vcr_cassette): patient_id = "092ae416-1c0d-4e14-be22-9cc8dafacdbd" patient = client.Patient(id=patient_id).get() @@ -36,7 +36,7 @@ def test_patient_read(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_patient_read_all(client, vcr_cassette): patients = client.Patients().get() @@ -49,7 +49,7 @@ def test_patient_read_all(client, vcr_cassette): assert len(vcr_cassette) == 1, "Unexpected pagination" -@pytest.mark.vcr() +@pytest.mark.vcr def test_patient_update(client, vcr_cassette): patient = client.Patient(id="092ae416-1c0d-4e14-be22-9cc8dafacdbd").get() name = patient.firstName @@ -60,7 +60,7 @@ def test_patient_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_patient_delete(client, vcr_cassette): patient = client.Patient(id="092ae416-1c0d-4e14-be22-9cc8dafacdbd") diff --git a/test/test_users.py b/test/test_users.py index 039d75a..54044a7 100644 --- a/test/test_users.py +++ b/test/test_users.py @@ -4,7 +4,7 @@ from welkin.models.user import User, Users -@pytest.mark.vcr() +@pytest.mark.vcr def test_user_create(client, vcr_cassette): user = client.User(username="bar", email="bar@foo.com").create() @@ -13,7 +13,7 @@ def test_user_create(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_user_read(client, vcr_cassette): user = client.User(id="658f3b36-a12a-4bce-aad6-1e4930948b7d") @@ -26,7 +26,7 @@ def test_user_read(client, vcr_cassette): assert len(vcr_cassette) == 1 -@pytest.mark.vcr() +@pytest.mark.vcr def test_user_read_all(client, vcr_cassette): users = client.Users().get() @@ -39,7 +39,7 @@ def test_user_read_all(client, vcr_cassette): assert len(vcr_cassette) == 1, "Unexpected pagination" -@pytest.mark.vcr() +@pytest.mark.vcr def test_user_update(client, vcr_cassette): user = client.User(id="92cc5811-ff71-4101-915d-a419383db168").get() name = user.firstName @@ -50,7 +50,7 @@ def test_user_update(client, vcr_cassette): assert len(vcr_cassette) == 2 -@pytest.mark.vcr() +@pytest.mark.vcr def test_user_delete(client, vcr_cassette): user = client.User(id="658f3b36-a12a-4bce-aad6-1e4930948b7d") diff --git a/welkin/client.py b/welkin/client.py index 1626558..fa77f59 100644 --- a/welkin/client.py +++ b/welkin/client.py @@ -3,6 +3,7 @@ This module provides a Client object to interface with the Welkin Health API. """ import logging +from http import HTTPStatus from json import JSONDecodeError from requests import HTTPError, Session @@ -103,7 +104,13 @@ def __init__( timeout=timeout, max_retries=Retry( total=total, - status_forcelist=[429, 500, 502, 503, 504], + status_forcelist=[ + HTTPStatus.TOO_MANY_REQUESTS, + HTTPStatus.INTERNAL_SERVER_ERROR, + HTTPStatus.BAD_GATEWAY, + HTTPStatus.SERVICE_UNAVAILABLE, + HTTPStatus.GATEWAY_TIMEOUT, + ], backoff_factor=backoff_factor, ), ) @@ -203,7 +210,7 @@ def request( except HTTPError as exc: code = exc.response.status_code - if code in [401]: + if code in [HTTPStatus.UNAUTHORIZED]: msg = response.json() codes = ["NOT_VALID_JSON_WEB_TOKEN", "TOKEN_EXPIRED"] if any(i.get("errorCode") in codes for i in msg): diff --git a/welkin/models/calendar.py b/welkin/models/calendar.py index 5b81fbf..66ba660 100644 --- a/welkin/models/calendar.py +++ b/welkin/models/calendar.py @@ -140,11 +140,12 @@ def get( } response = self._client.get( - f"{self._client.instance}/calendar/work-hours/", + f"{self._client.instance}/calendar/work-hours/", *args, params=params, - **kwargs) - + **kwargs, + ) + # When no work hours are found Welkin returns an {None: []} dictionary if isinstance(response, dict) and None in response.keys(): return WorkHours([]) From 3205dd973495d3489f8c3c2b84a96f373c68636f Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Thu, 31 Aug 2023 16:52:03 -0700 Subject: [PATCH 09/17] Move all formation endpoints to classes --- .../test_assessment_formation_read.yaml | 72 + .../test_assessment_formations_read.yaml | 933 +++++ test/cassettes/test_cdt_formation_read.yaml | 118 + test/cassettes/test_cdt_formations_read.yaml | 3036 +++++++++++++++++ ...st_document_summaries_get_patient_id.yaml} | 0 ... test_document_summaries_subresource.yaml} | 0 .../test_document_type_formation_read.yaml | 106 + ...> test_document_types_formation_read.yaml} | 656 ++-- ..._encounter_disposition_formation_read.yaml | 145 + .../test_encounter_formation_read.yaml | 63 + .../test_encounter_formations_read.yaml | 85 + test/cassettes/test_goal_formation_read.yaml | 58 + test/cassettes/test_goal_formations_read.yaml | 60 + test/conftest.py | 1 + test/test_document.py | 9 +- test/test_encounters.py | 16 +- test/test_formations.py | 130 +- welkin/client.py | 19 +- welkin/models/__init__.py | 40 +- welkin/models/document.py | 20 - welkin/models/encounter.py | 6 +- welkin/models/formation.py | 116 +- welkin/pagination.py | 25 + 23 files changed, 5266 insertions(+), 448 deletions(-) create mode 100644 test/cassettes/test_assessment_formation_read.yaml create mode 100644 test/cassettes/test_assessment_formations_read.yaml create mode 100644 test/cassettes/test_cdt_formation_read.yaml create mode 100644 test/cassettes/test_cdt_formations_read.yaml rename test/cassettes/{test_documents_get_patient_id.yaml => test_document_summaries_get_patient_id.yaml} (100%) rename test/cassettes/{test_documents_subresource.yaml => test_document_summaries_subresource.yaml} (100%) create mode 100644 test/cassettes/test_document_type_formation_read.yaml rename test/cassettes/{test_formation_get.yaml => test_document_types_formation_read.yaml} (51%) create mode 100644 test/cassettes/test_encounter_disposition_formation_read.yaml create mode 100644 test/cassettes/test_encounter_formation_read.yaml create mode 100644 test/cassettes/test_encounter_formations_read.yaml create mode 100644 test/cassettes/test_goal_formation_read.yaml create mode 100644 test/cassettes/test_goal_formations_read.yaml diff --git a/test/cassettes/test_assessment_formation_read.yaml b/test/cassettes/test_assessment_formation_read.yaml new file mode 100644 index 0000000..f5e6677 --- /dev/null +++ b/test/cassettes/test_assessment_formation_read.yaml @@ -0,0 +1,72 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/assessments/asm-coaching-notes + response: + body: + string: '{"id": "e9f28ffe-fb61-453f-b14f-f59fad9afaa0", "title": "Coaching Notes", + "name": "asm-coaching-notes", "version": 74, "sections": [{"title": "Coaching + Notes", "name": "section-1", "order": 0, "fields": [{"label": "Internal Member + Overview - General information about patient such as important relationships, + current issues, etc. ", "name": "", "refCdtName": "cdt-coaching-notes", "refCdtFieldName": + "cdtf-patient-overview", "order": 0, "viewType": "question", "meta": {"type": + "textarea", "required": false}, "prePopulatedValue": {"type": "PREVIOUS_ASSESSMENT"}, + "attachments": []}, {"label": "Internal Session Notes", "name": "", "refCdtName": + "cdt-coaching-notes", "refCdtFieldName": "cdtf-focus-today", "order": 1, "viewType": + "question", "meta": {"type": "textarea", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "External Notes for Patient", "name": + "", "refCdtName": "cdt-soap-notes", "refCdtFieldName": "cdtf-visit-summary", + "order": 2, "viewType": "question", "meta": {"type": "textarea", "required": + false}, "prePopulatedValue": null, "attachments": []}]}], "scoring": {"formula": + "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": + {"elements": [], "events": []}, "displayType": "SECTIONS", "autoCompleted": + false, "_containsPHI": true}' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:16 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '1204' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_assessment_formations_read.yaml b/test/cassettes/test_assessment_formations_read.yaml new file mode 100644 index 0000000..a657fdb --- /dev/null +++ b/test/cassettes/test_assessment_formations_read.yaml @@ -0,0 +1,933 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/assessments?page=0 + response: + body: + string: '[{"id": "e9f28ffe-fb61-453f-b14f-f59fad9afaa0", "title": "Coaching + Notes", "name": "asm-coaching-notes", "version": 74, "sections": [{"title": + "Coaching Notes", "name": "section-1", "order": 0, "fields": [{"label": "Internal + Member Overview - General information about patient such as important relationships, + current issues, etc. ", "name": "", "refCdtName": "cdt-coaching-notes", "refCdtFieldName": + "cdtf-patient-overview", "order": 0, "viewType": "question", "meta": {"type": + "textarea", "required": false}, "prePopulatedValue": {"type": "PREVIOUS_ASSESSMENT"}, + "attachments": []}, {"label": "Internal Session Notes", "name": "", "refCdtName": + "cdt-coaching-notes", "refCdtFieldName": "cdtf-focus-today", "order": 1, "viewType": + "question", "meta": {"type": "textarea", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "External Notes for Patient", "name": + "", "refCdtName": "cdt-soap-notes", "refCdtFieldName": "cdtf-visit-summary", + "order": 2, "viewType": "question", "meta": {"type": "textarea", "required": + false}, "prePopulatedValue": null, "attachments": []}]}], "scoring": {"formula": + "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": + {"elements": [], "events": []}, "displayType": "SECTIONS", "autoCompleted": + false, "_containsPHI": true}, {"id": "aaa0c1f7-fc9e-42a6-b5bd-23d58849dd50", + "title": "Onboarding", "name": "asm-onboarding", "version": 74, "sections": + [{"title": "Patient Answers", "name": "section-1", "order": 0, "fields": [{"label": + "What brings you to Zest?", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-rationale", "order": 0, "viewType": "question", "meta": + {"type": "text", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "Are you 18 or over?", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-over-eighteen", "order": 1, "viewType": "question", + "meta": {"type": "checkbox", "required": false}, "prePopulatedValue": null, + "attachments": []}, {"label": "Have you been diagnosed with eczema or psoriasis?", + "name": "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-diagnosis", + "order": 2, "viewType": "question", "meta": {"type": "text", "required": false}, + "prePopulatedValue": null, "attachments": []}, {"label": "How often does your + skin impact your ability to enjoy daily activities?", "name": "", "refCdtName": + "cdt-onboarding-form", "refCdtFieldName": "cdtf-impact-frequency", "order": + 3, "viewType": "question", "meta": {"type": "integer", "required": false}, + "prePopulatedValue": null, "attachments": []}, {"label": "What activities + are most impacted by your condition?", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-impacted-activities", "order": 4, "viewType": "question", + "meta": {"type": "text", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "Have you ever been prescribed medication by your doctor?", + "name": "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-rx-history", + "order": 5, "viewType": "question", "meta": {"type": "text", "required": false}, + "prePopulatedValue": null, "attachments": []}, {"label": "Which medication + were you prescribed?", "name": "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": + "cdtf-rx-prior-type", "order": 6, "viewType": "question", "meta": {"type": + "text", "required": false}, "prePopulatedValue": null, "attachments": []}, + {"label": "Why did you stop taking the medication?", "name": "", "refCdtName": + "cdt-onboarding-form", "refCdtFieldName": "cdtf-rx-stop-rationale", "order": + 7, "viewType": "question", "meta": {"type": "text", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "Which medication are you currently prescribed?", + "name": "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-rx-current-type", + "order": 8, "viewType": "question", "meta": {"type": "text", "required": false}, + "prePopulatedValue": null, "attachments": []}, {"label": "Do you know the + name of the topical treatment you take?", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-rx-current-topical", "order": 9, "viewType": "question", + "meta": {"type": "text", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "Do you know the name of the oral medication you take?", "name": + "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-rx-current-oral", + "order": 10, "viewType": "question", "meta": {"type": "text", "required": + false}, "prePopulatedValue": null, "attachments": []}, {"label": "Do you know + the name of the injection you take?", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-rx-current-injection", "order": 11, "viewType": "question", + "meta": {"type": "text", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "Do you know the name of the IV Infusion you receive?", "name": + "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-rx-current-infusion", + "order": 12, "viewType": "question", "meta": {"type": "text", "required": + false}, "prePopulatedValue": null, "attachments": []}, {"label": "In what + state do you currently reside?", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-region", "order": 13, "viewType": "question", "meta": + {"type": "text", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "Are you interesting in exploring new/different treatment options?", + "name": "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-new-treatment-intent", + "order": 14, "viewType": "question", "meta": {"type": "text", "required": + false}, "prePopulatedValue": null, "attachments": []}, {"label": "Please enter + your phone number below.", "name": "", "refCdtName": "cdt-onboarding-form", + "refCdtFieldName": "cdtf-phone-number", "order": 15, "viewType": "question", + "meta": {"type": "phone", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "What type of insurance do you have?", "name": "", "refCdtName": + "cdt-onboarding-form", "refCdtFieldName": "cdtf-insurance-type", "order": + 16, "viewType": "question", "meta": {"type": "text", "required": false}, "prePopulatedValue": + null, "attachments": []}]}], "scoring": {"formula": "SUM", "groups": []}, + "programs": [], "template": null, "conditionSettings": {"elements": [], "events": + []}, "displayType": "SECTIONS", "autoCompleted": false, "_containsPHI": true}, + {"id": "995c15fb-208f-4463-a22b-c4062ead805a", "title": "Provider Notes", + "name": "asm-provider-notes", "version": 74, "sections": [{"title": "Provider + Notes", "name": "section-1", "order": 0, "fields": [{"label": "History & Findings + (Internal)", "name": "", "refCdtName": "cdt-soap-notes", "refCdtFieldName": + "cdtf-soap-subjective", "order": 0, "viewType": "question", "meta": {"type": + "textarea", "required": true}, "prePopulatedValue": null, "attachments": []}, + {"label": "Percent BSA", "name": "", "refCdtName": "cdt-severity", "refCdtFieldName": + "cdtf-body-surface-area", "order": 1, "viewType": "question", "meta": {"type": + "select", "required": false}, "prePopulatedValue": null, "attachments": []}, + {"label": "Assessment & Recommendations (Internal)", "name": "", "refCdtName": + "cdt-soap-notes", "refCdtFieldName": "cdtf-soap-plan", "order": 2, "viewType": + "question", "meta": {"type": "textarea", "required": true}, "prePopulatedValue": + null, "attachments": []}, {"label": "Patient Notes (External)", "name": "", + "refCdtName": "cdt-soap-notes", "refCdtFieldName": "cdtf-visit-summary", "order": + 3, "viewType": "question", "meta": {"type": "textarea", "required": true}, + "prePopulatedValue": null, "attachments": []}, {"label": "FIRST VISIT -Verify + the patient''s information: \n\nPhone: {{USER_PHONE}}\nAddress: \n\nPharmacy: + \n{{CDT.cdt-pharmacy.name.LAST_RECORD}}\n{{CDT.cdt-pharmacy.address.LAST_RECORD}}\n{{CDT.cdt-pharmacy.cdtf-phone.LAST_RECORD}}\n\nInsurance: + \n{{CDT.insurance.insured-by.LAST_RECORD}}\n{{CDT.insurance.insurance-phone.LAST_RECORD}}\n", + "name": "", "refCdtName": "cdt-general-note", "refCdtFieldName": "general_note", + "order": 4, "viewType": "question", "meta": {"type": "textarea", "required": + false}, "prePopulatedValue": {"type": "PREVIOUS_ASSESSMENT"}, "attachments": + []}, {"label": "

Don''t forget to start + the \"Treatment Recommendations\" assessment where you will select OTC, Nutrition, + and Lifestyle recommendations when applicable.

\n", "name": "section-0-field-0", + "refCdtName": "", "refCdtFieldName": "", "order": 5, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "Encounter Status?", "name": "", "refCdtName": "cdt-encounter-status", + "refCdtFieldName": "cdtf-encounter-notes-status", "order": 6, "viewType": + "question", "meta": {"type": "select", "required": false}, "prePopulatedValue": + null, "attachments": []}]}], "scoring": {"formula": "SUM", "groups": []}, + "programs": [], "template": null, "conditionSettings": {"elements": [], "events": + []}, "displayType": "SECTIONS", "autoCompleted": false, "_containsPHI": true}, + {"id": "5111e297-a9c1-4186-a57b-f69ec0a4c791", "title": "Treatment Recommendations", + "name": "asm-treatment-recommendations", "version": 74, "sections": [{"title": + "Treatment Recommendations", "name": "section-1", "order": 0, "fields": [{"label": + "Optional: Select an OTC treatment and copy the text into the OTC Recommendations + field. ", "name": "", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", + "order": 0, "viewType": "question", "meta": {"type": "select", "required": + false}, "prePopulatedValue": null, "attachments": []}, {"label": "

# Petroleum + Jelly

\n

\n

## About

\n

Although + it can be sticky, petroleum jelly helps to hydrate dry skin and reduce symptoms + like irritation and itchiness.

\n

## + Directions for Use

\n

As needed, apply the jelly to affected areas, especially + after showers or over moisturizers to lock in hydration.

\n

\n

\n", + "name": "section-0-field-0", "refCdtName": "", "refCdtFieldName": "", "order": + 1, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Hydrocortisone 1%

\n

\n

## About

\n

Topical corticosteroids + are a mainstay in the treatment of auto-immune dermatologic conditions given + their anti-inflammatory, anti-proliferative, and immunosuppressive capabilities.

\n

## Directions for Use

\n

This + ointment should be applied twice daily to affected areas. *Stop using this + medication after 2 weeks* as long-term use can carry certain side effects.

\n", + "name": "section-0-field-1", "refCdtName": "", "refCdtFieldName": "", "order": + 2, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Tar Shampoo

\n

\n

## About

\n

Coal tar has been + used for over 100 years to treat skin conditions by slowing cell growth and + relieving inflammation.

\n

## + Directions for Use

\n

Use the shampoo as you would your normal shampoo. + Effectiveness can be increased by letting it sit on your scalp for 5 to 10 + minutes before rinsing.

\n", "name": "section-0-field-2", "refCdtName": + "", "refCdtFieldName": "", "order": 3, "viewType": "readOnly", "meta": {"type": + "", "required": false}, "prePopulatedValue": null, "attachments": []}, {"label": + "

# Tar Lotion / Ointment

\n

\n

## About

\n

Coal tar can relieve skin inflammation improving + redness, flaking and itching symptoms.

\n

## Directions for Use

\n

Apply once daily to affected + areas. Avoid application to sensitive areas as this may cause stinging or + discomfort. Discuss any concerns with your care team prior to starting.

\n", + "name": "section-0-field-7", "refCdtName": "", "refCdtFieldName": "", "order": + 4, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Moisturizer

\n

\n

## About

\n

Moisturizers help + lock in the skin''s hydration and support effective skin barrier function. + When the skin barrier is well maintained it reduces symptoms like itch or + skin sensitivity decreasing the likelihood of flares related to external triggers + of inflammation.

\n

## Directions + for Use

\n

Daily application of moisturizer is recommended to maintain + a healthy skin barrier. The most important time to moisturize is within the + first three minutes after a bath or shower as this seals water into the skin. + We recommend using products that are fragrance-free and hypoallergenic.

\n

\n", + "name": "section-0-field-8", "refCdtName": "", "refCdtFieldName": "", "order": + 5, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Salicylic Acid

\n

\n

## About

\n

Salicylic acid + helps gently exfoliate the skin which improves penetration of topical medications. + It can be found in a variety of products, including cleansers, creams, ointments, + and shampoos.

\n

## Directions + for Use

\n

Apply the product to affected areas 1-2 times daily. It may + take a few weeks to see an improvement in areas where there is significant + skin build up.

\n", "name": "section-0-field-9", "refCdtName": "", "refCdtFieldName": + "", "order": 6, "viewType": "readOnly", "meta": {"type": "", "required": false}, + "prePopulatedValue": null, "attachments": []}, {"label": "

# Fragrance-free + Laundry Products

\n

\n

## + About

\n

As needed, use gentle, fragrance-free laundry products. We recommend + Tide Free and Gentle.

\n

## + Directions for Use

\n

Selecting fragrance-free, hypoallergenic laundry + products help prevent allergens from irritating sensitive skin.

\n", "name": + "section-0-field-10", "refCdtName": "", "refCdtFieldName": "", "order": 7, + "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Antihistamines

\n

\n

#### + About

\n

In many individuals, eczema is linked to allergies and asthma. + If you experience hives or urticaria, over-the-counter antihistamines can + help curb inflammation and reduce itch symptoms. Take care to select a non-drowsy + antihistamine for daily use such as loratadine (Claritin) or fexofenadine + (Allegra).

\n

\n

#### Directions for Use

\n

Dosing as directed on product + label. We recommend non-sedating options such as loratadine (Claritin) or + fexofenadine (Allegra) in the morning and cetirizine (Zyrtec) diphenhydramine + (Benadryl) in the evening.

\n", "name": "section-0-field-11", "refCdtName": + "", "refCdtFieldName": "", "order": 8, "viewType": "readOnly", "meta": {"type": + "", "required": false}, "prePopulatedValue": null, "attachments": []}, {"label": + "Optional: OTC Recommendations (Patient Facing)", "name": "", "refCdtName": + "cdt-soap-notes", "refCdtFieldName": "cdtf-otc-rec", "order": 9, "viewType": + "question", "meta": {"type": "textarea", "required": false}, "prePopulatedValue": + {"type": "PREVIOUS_ASSESSMENT"}, "attachments": []}, {"label": "Optional: Select + a Nutrition option and copy the text into the Nutrition Recommendations field. + ", "name": "", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", + "order": 10, "viewType": "question", "meta": {"type": "select", "required": + false}, "prePopulatedValue": null, "attachments": []}, {"label": "

# Food + Diary

\n

\n

## About

\n

Food + diaries allow us to see trends in your eating habits and if there is a relationship + between certain foods and your flares. Identifying any food triggers will + improve control over your condition and could reduce the frequency of flares.

\n

\n

## Directions for Use

\n

Please + keep a list of everything you eat and drink for 2 days. You can do so using + pen and paper, in a note on your phone, through photos, or in your favorite + food tracking apps. See this link for some of our favorites: [Best Nutrition + Tracking Apps](https://www.healthline.com/nutrition/top-iphone-android-apps)

\n", + "name": "section-0-field-3", "refCdtName": "", "refCdtFieldName": "", "order": + 11, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Elimination Diet

\n

\n

## About

\n

Elimination diets + allow us to identify foods that may be triggering flares or symptoms of your + condition such as itch. By removing certain food types in a systematic way, + we can get valuable information on how a particular food (or groups of food) + are affecting your skin disease.

\n

\n

## Directions for Use

\n

We will start by eliminating + the list of known and universally accepted food triggers. One at a time, we + will re-introduce foods. Please send a chat message if you start to experience + any symptoms throughout the process. Here is the list of known foods that + will be eliminated: [Typical Food Allergens](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Food+Allergens.pdf)

\n", + "name": "section-0-field-4", "refCdtName": "", "refCdtFieldName": "", "order": + 12, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Water Intake Log

\n

\n

## About

\n

Staying adequately + hydrated is an important part of maintaining healthy skin. Active skin inflammation + weakens the skin barrier making it less effective at maintaining moisturize + in the skin. Drinking enough water helps to support the skin''s moisture and + ability to self-repair.

\n

\n

## + Directions for Use

\n

Please keep a log of your water intake. You can + do so using pen and paper, in a note on your phone, through photos, or in + your favorite food tracking apps. See this link for some of our favorites: + [Best Water Tracker Apps](https://www.nesswell.com/water-tracker-apps/)

\n", + "name": "section-0-field-12", "refCdtName": "", "refCdtFieldName": "", "order": + 13, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# The \"Itchy Dozen\" Log

\n

\n

## About

\n

In eczema, certain + foods can be allergic triggers worsening skin symptoms such as itching. Notice + how your body responds to these foods by tracking your intake and symptoms. + Systematically eliminating them from your diet if they are causing symptoms + may help better control your skin condition.

\n

\n

## Directions for Use

\n

Start by reviewing the list + of common \"itchy\" foods and track how often you eat these foods in a given + week. What do you notice about your skin after eating these foods?

\n

\n

[The + Itchy Dozen Foods](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/The+%E2%80%9CItchy+Dozen%E2%80%9D+Foods.pdf)

\n", + "name": "section-0-field-13", "refCdtName": "", "refCdtFieldName": "", "order": + 14, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Visualize Portion Sizes

\n


## + About

\n

Every body is different and has different nutritional needs. + It is helpful to use portion sizes to guide your nutrition planning. Maintaining + a healthy weight range will improve the control you have over your skin condition + and overall health.

\n

\n

## + Directions for Use

\n

Please review the portion size visuals below and + see how your current eating habits compare. Notice if there are areas where + you could use some support to make better nutritional choices and share these + with your Zest coach.

\n

\n

[Guide to Serving Sizes](https://wellness.sfsu.edu/sites/default/files/documents/Serving%20Size%20Hand%20Guide%20Condensed.pdf)

\n

*Credit + SFSU Wellness Center

\n

\n", "name": "section-0-field-14", "refCdtName": + "", "refCdtFieldName": "", "order": 15, "viewType": "readOnly", "meta": {"type": + "", "required": false}, "prePopulatedValue": null, "attachments": []}, {"label": + "

# Mindful Eating Tips

\n

\n

## + About

\n

Eating quickly prevents proper digestion and absorption of nutrients. + By slowing down your eating pace, you can improve digestion, eat less and + still feel satiated after your meals.

\n

\n

## Directions for Use

\n

Please review the [mindful eating + recommendations](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Mindful+Eating+Tips.pdf). + Over the course of a week, log if you were able to apply these principles + and where you faced challenges.

\n", "name": "section-0-field-15", "refCdtName": + "", "refCdtFieldName": "", "order": 16, "viewType": "readOnly", "meta": {"type": + "", "required": false}, "prePopulatedValue": null, "attachments": []}, {"label": + "

# \"Watery\" Foods

\n

\n

## + About

\n

Drinking water and staying properly hydrated can help keep the + skin hydrated and may reduce the number and severity of flare-ups. Adding + \"watery\" foods to your diet will also help combat dehydration.

\n

\n

## Directions for Use

\n

Please + review the [\"watery\" foods](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/%E2%80%9CWatery%E2%80%9D+Foods.pdf) + list. Over the course of a week, log which watery foods you were able to add + to your meals and where you faced challenges.

\n", "name": "section-0-field-16", + "refCdtName": "", "refCdtFieldName": "", "order": 17, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "

# Make Water More Interesting

\n

\n

## About

\n

Drinking water and staying properly hydrated + can help keep the skin hydrated and may reduce the number and severity of + flare-ups. Take a look at [these tips](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Ways+to+Make+Your+Water+More+Interesting.pdf) + for how to make drinking water more fun and enjoyable!

\n

\n

\n", + "name": "section-0-field-17", "refCdtName": "", "refCdtFieldName": "", "order": + 18, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Anti-inflammatory Foods

\n

\n

## About

\n

Incorporating anti-inflammatory + foods regularly into your diet can help reduce flare severity and number of + flare days you experience with your skin condition. You can help heal your + skin from the inside out through day-to-day food decisions.

\n

\n

Check + out these two articles from Harvard Health Publishing at Harvard Medical School:

\n

[Foods + that Fight Inflammation](https://www.health.harvard.edu/staying-healthy/foods-that-fight-inflammation)

\n

[The + Best Anti-inflammatory Diets](https://www.health.harvard.edu/staying-healthy/the-best-anti-inflammatory-diets)

\n

\n

\n", + "name": "section-0-field-18", "refCdtName": "", "refCdtFieldName": "", "order": + 19, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "Optional: Nutrition Recommendations (Patient + Facing)", "name": "", "refCdtName": "cdt-soap-notes", "refCdtFieldName": "cdtf-nutrition-rec", + "order": 20, "viewType": "question", "meta": {"type": "textarea", "required": + false}, "prePopulatedValue": {"type": "PREVIOUS_ASSESSMENT"}, "attachments": + []}, {"label": "Optional: Select a Lifestyle treatment and copy the text + into the Lifestyle Recommendations field. ", "name": "", "refCdtName": "cdt-treatments", + "refCdtFieldName": "cdtf-lifestyle-treatment-list", "order": 21, "viewType": + "question", "meta": {"type": "select", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Sleep Diary

\n

\n

## About

\n

Sleep and autoimmune + disease are deeply intertwined. Getting less sleep can affect inflammation, + cognition, energy, motivation, and hunger levels such that you are more likely + to flare or have worse flares.

\n

\n

## Directions for Use

\n

Log your sleeping hours each + night. You can do so via pen and paper, on your phone, or using your favorite + tracking application. See here for more information on how and why to keep + a [Sleep Diary](https://www.sleepfoundation.org/sleep-diary).

\n", "name": + "section-0-field-5", "refCdtName": "", "refCdtFieldName": "", "order": 22, + "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Sleep Hygiene

\n

\n

## About +

\n

Sleep and autoimmune disease are deeply intertwined. Not getting + enough sleep promotes inflammation, slow cognition, low energy, decreased + motivation, and stimulates hunger. These effects contribute to increased frequency + and severity of flares.

\n

\n

## + Directions

\n

Make note of your evening wind-down routine - this includes + all the steps you take to prepare your mind and body for sleep. We will work + with you to improve upon this routine, getting you better nights of rest.

\n

\n

[Nighttime + Wind-Down Rituals](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Nighttime+Wind-Down+Rituals.pdf)

\n

[Tips + to Sleep Better at Night](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Tips+to+Sleep+Better+at+Night.pdf)

\n", + "name": "section-0-field-6", "refCdtName": "", "refCdtFieldName": "", "order": + 23, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Walking Step Counts

\n

\n

## About

\n

Step counts are + fantastic indicators of overall health, both physical and mental health. High + step counts are associated with lower rates of death from heart disease and + cancer, and movement promotes emotional well-being.

\n

\n

## Directions for Use

\n

Please use your favorite tracking + application or a pedometer to track daily step counts. Here are our recommendations + for the [10 Best Pedometers](https://www.verywellfit.com/best-pedometers-4159148).

\n", + "name": "section-0-field-19", "refCdtName": "", "refCdtFieldName": "", "order": + 24, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Meditation

\n

\n

Meditation + manages stress, increases self-awareness, reduces negative emotions, increases + creativity, develops resourcefulness, and increases patience. These skills + are all important to sustainably managing chronic disease.

\n

\n

Meditation + can wipe away the day''s stress, bringing with it inner peace. Learn how you + can practice meditation whenever you need it most: [Meditation Benefits and + Examples](https://www.mayoclinic.org/tests-procedures/meditation/in-depth/meditation/art-20045858).

\n", + "name": "section-0-field-20", "refCdtName": "", "refCdtFieldName": "", "order": + 25, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Visualization Exercises

\n

\n

Visualization + allows you to use the power of your mind and imagination to create a happier, + healthier, and more joyful life for yourself. Since chronic disease management + takes time and purpose, you can use visualization for goal-setting or to get + your body into a more relaxed state.

\n

\n

These [Visualization + Exercises](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Visualization.pdf) + are a great place to start!

\n

\n

\n", "name": "section-0-field-21", + "refCdtName": "", "refCdtFieldName": "", "order": 26, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "

# Breathing Exercises

\n

\n

Stress and flares + are often intertwined. Breathing exercises reduce stress and anxiety, improve + lung function, detox the body, improve digestion, sharpen cognitive function, + and improve the quality of your sleep.

\n

\n

Breath work can be + done easily from anywhere! Use these techniques to get started:

\n

[Box + Breathing Benefits and Technique](https://health.clevelandclinic.org/box-breathing-benefits/)

\n

[Breathing + Exercises for Stress Relief](https://www.webmd.com/balance/stress-management/stress-relief-breathing-techniques)

\n", + "name": "section-0-field-22", "refCdtName": "", "refCdtFieldName": "", "order": + 27, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Yoga

\n

\n

Yoga provides + a variety of benefits to your body and mind:

\n

* Improves flexibility, + posture, and circulation

\n

* Increases blood flow to the skin providing + more nutrients and hydration

\n

* Slows the heart rate and decreases + muscle tension helping to manage symptoms of stress.

\n

* Helps control + your own thoughts and relaxes your nervous system

\n

\n

Whether + you''re a beginner, a pro, or just enjoy [savasana](https://insighttimer.com/blog/savasana-meaning/), + here''s a [Yoga Video Series](https://www.healthline.com/health/fitness/fit-it-in-yoga-videos) + to get your blood flowing and stress levels lowered.

\n", "name": "section-0-field-23", + "refCdtName": "", "refCdtFieldName": "", "order": 28, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "

# Qigong

\n

\n

Qigong is a mind-body practice + that involves simple postures and deep breathing patterns. This practice lowers + blood pressure, relieves chronic pain by increasing circulation, strengthens + the immune system by circulating lymph fluids, and reduces anxiety and depression.

\n

\n

You + can learn more about this ancient Chinese healing practice and the benefits + it has to every day life here: [Qigong Benefits and How-To](https://www.healthline.com/nutrition/qigong-meditation#benefits)

\n", + "name": "section-0-field-24", "refCdtName": "", "refCdtFieldName": "", "order": + 29, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Strength Training

\n

\n

Building + muscle protects your joints from injury, contributes to better balance, and + reduces risk of falls. This enhances confidence in your body movements and + your quality of life - ultimately helping to maintain your independence as + you age.

\n

\n

Strength training is an important part of an overall + fitness program. Here''s what strength training can do for you and how to + easily get started:

\n

\n

[Strength Training-Getting Started](https://www.mayoclinic.org/healthy-lifestyle/fitness/in-depth/strength-training/art-20046670)

\n

[Benefits + of Strength Training](https://www.healthline.com/health/fitness/benefits-of-strength-training)

\n", + "name": "section-0-field-25", "refCdtName": "", "refCdtFieldName": "", "order": + 30, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Eczema Journal

\n

\n

Journaling + helps us track patterns and understand what triggers your symptoms - leading + to a broader range of treatment options.

\n

\n

## Directions for Use

\n

Document your journey with Eczema + by writing in journal using [our template](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Eczema+Journal.pdf) + as a guide. After a couple weeks, we''ll review your findings together.

\n", + "name": "section-0-field-26", "refCdtName": "", "refCdtFieldName": "", "order": + 31, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Gratitude Journal

\n

\n

Gratitude + is pausing to notice and appreciate the things we have that are often taken + for granted like food, clean water, friends, or a favorite TV show. Gratitude + has been shown to improve physical health, mental well being, stress, self-esteem, + and relationships.

\n

\n

Gratitude Journals are a tool to help + you document your appreciation and switch the focus away from things that + may be out of your control - and causing anxiety or stress.

\n

\n

## Directions for Use

\n

Every + day, write down three (3) things you are grateful for in your life. Here are + [some ideas](https://positivepsychology.com/gratitude-journal/) to get started!

\n", + "name": "section-0-field-27", "refCdtName": "", "refCdtFieldName": "", "order": + 32, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Mood Journal

\n

\n

Recognition + of what triggers your moods will help you to take action - reducing anxiety + and increasing positivity, hopefulness, and joy.

\n

\n

## Directions for Use

\n

Take some time each day to record + how you are feeling and what you are thinking. This helps you notice people + or places that are triggers for you. Here are some tips for creating your + [Mood Journal](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Mood+Journal.pdf).

\n", + "name": "section-0-field-28", "refCdtName": "", "refCdtFieldName": "", "order": + 33, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Thought Monitoring Journal

\n

\n

Automatic + thoughts are ones that pop into our heads in response to a trigger and can + make us feel like we are not in control. This can lead to anxiety, guilt, + and other discouraging thoughts. Monitoring and journaling your thoughts can + help you regain control and then identify and replace unhelpful, distressing + thoughts with more productive and rational ones.

\n

\n

Thought + Monitoring is an excellent tool to release stress and manage anxiety in every + day situations.

\n

\n

Here are [some exercises](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Thought-Monitoring+Exercise.pdf) + to practice anytime.

\n", "name": "section-0-field-29", "refCdtName": "", + "refCdtFieldName": "", "order": 34, "viewType": "readOnly", "meta": {"type": + "", "required": false}, "prePopulatedValue": null, "attachments": []}, {"label": + "

# Affirmations

\n

\n

Affirmations help us to celebrate ourselves, + overcome self-sabotage, and minimize discouraging thinking. They help to relieve + stress and open our minds to new beliefs and ways of thinking and feeling.

\n

\n

Teaching + yourself to give and receive daily affirmations is a challenging yet rewarding + experience.

\n

\n

## + Examples of Affirmations

\n

\n

\"I trust the healing process.\"

\n

\"My + skin is resilient and strong.\"

\n

\"I am capable and enough.\"

\n

\"I + am beautiful just the way I am.\"

\n

\n

Here''s a [list of affirmations](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Affirmations.pdf) + that can be printed or saved for when you need them most.

\n", "name": + "section-0-field-30", "refCdtName": "", "refCdtFieldName": "", "order": 35, + "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Morning Pages

\n

\n

Morning + pages help you start your day with focus, clarity, and direction. It is a + journaling exercise that helps you appreciate what brings you happiness in + your life and switch your mind''s focus onto idea-generating, creative thoughts.

\n

\n

Here + are some ideas for your Morning Pages:

\n

- What are 3 things you + are grateful for at this moment?

\n

- What are 3 things that would make + today great?

\n

- Write down 2 affirmations that you want to live by + today

\n

- Write down any memories you may have of your dreams

\n

- + Write down 10 things you are grateful for from yesterday

\n

- Stream + of consciousness writing: write 1-2 pages of whatever crosses your mind

\n", + "name": "section-0-field-31", "refCdtName": "", "refCdtFieldName": "", "order": + 36, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Habit Stacking

\n

\n

Habit + stacking involves identifying a current habit you already do each day and + stacking a new behavior on top of it. This can help you pair an action that + you want to do with an action you need to do. Start small and create simple + and repeatable routines of linked habits that allow you to get more done in + less time. As you perform these stacked actions every day, they become a habitual + part of your daily routine.

\n

\n

If you are trying to start your + day with more hydration, tell yourself \u201cAfter brushing my teeth in the + morning, I\u2019m going to drink a glass of water.\u201d Every morning those + two actions will be stacked together and you begin to create small changes + that add up over time.

\n

\n

Tip: Do something you enjoy immediately + before a difficult habit you are trying to implement.

\n

\n

## Additional examples of Habit + Stacking:

\n

\n

**Add more meditation to your life**

\n

While + your morning coffee is brewing, meditate for 5-10 minutes.

\n

\n

**Start + your day with more gratitude**

\n

Before opening your work email in the + morning, write down 3 things you\u2019re grateful for.

\n

\n

**Start + a morning exercise routine**

\n

After you wash your face at night before + bed, set out your workout clothes for the next morning\u2019s workout.

\n

\n

**Start + a breathing practice**

\n

While your tea is steeping, do a few minutes + of mindful deep breathing.

\n

\n

\n", "name": "section-0-field-32", + "refCdtName": "", "refCdtFieldName": "", "order": 37, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "

# Mindfulness Exercise

\n

\n

Mindfulness reduces + anxiety and improves brain health and focus. It also increases our ability + to relate to ourselves and others with kindness, compassion, and acceptance.

\n

\n

A + common and effective mindfulness exercise is the 5x5 Mindfulness Exercise. + Give this exercise a try and share your thoughts with your coach.

\n

\n

## 5x5 Mindfulness Exercise

\n

\n

A + simple mindfulness exercise is to notice what you are experiencing right now, + at this moment, through any or all of your five senses: sight, sound, smell, + taste, and touch.

\n

\n

**What can you see?**

\n

List 5 things + you don''t usually notice in your environment

\n

\n

**What can + you hear?**

\n

List 5 things you hear\u2026a car driving oast? Music + being played nearby?

\n

\n

**What can you smell?**

\n

List + 5 things you smell\u2026food cooking? Candles being burned? Soap on your hands?

\n

\n

**What + can you taste?**

\n

List 5 things\u2026take a sip of a drink, chew gum, + or eat a cracker or a piece of fruit and

\n

notice your experience with + the flavors.

\n

\n

**What can you feel?**

\n

List 5 things\u2026the + texture of your clothing, the chair you''re sitting on, etc.

\n", "name": + "section-0-field-33", "refCdtName": "", "refCdtFieldName": "", "order": 38, + "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Body Scan Meditation

\n

\n

Body + scan is a meditation exercise that helps you tap into your body sensations + and focus on the here and now. Being in the present moment helps to reduce + anxiety and unproductive thoughts. This relaxation exercise helps to lower + blood pressure and decrease muscle tension and inflammation.

\n

\n

As + with all forms of meditation, doing a body scan is meant to be simple. Here + are some instructions to get you started: [Body Scan Meditation](https://www.verywellmind.com/body-scan-meditation-why-and-how-3144782)

\n", + "name": "section-0-field-34", "refCdtName": "", "refCdtFieldName": "", "order": + 39, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Progressive Muscle Relaxation

\n

\n

Progressive + muscle relaxation is an exercise that helps you tap into your body sensations + and focus on the here and now. Being in the present moment helps to reduce + anxiety. This relaxation exercise helps to lower blood pressure and decrease + muscle tension and inflammation.

\n

\n

There\u2019s plenty of evidence + behind the health benefits of PMR. Take a look at the research behind this + technique and how to do it: [Progressive Muscle Relaxation](https://www.healthline.com/health/progressive-muscle-relaxation#about-pmr)

\n", + "name": "section-0-field-35", "refCdtName": "", "refCdtFieldName": "", "order": + 40, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Identifying an Anxious State

\n

\n

Learning + to identify signs of anxiety is an important tool for managing your mental + health. Use this exercise to increase mindfulness and body awareness when + you feel anxious. This allows you to take action and feel more in control + of your thoughts.

\n

\n

You can use these tips to get started: + [Identifying an Anxious State](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Identifying+an+Anxious+State.pdf)

\n

\n

\n

\n", + "name": "section-0-field-36", "refCdtName": "", "refCdtFieldName": "", "order": + 41, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Alternative Therapies for Eczema + and Psoriasis

\n

\n

In addition to medicinal interventions and + treatments, there are lifestyle behaviors and tools you can utilize in order + to feel better and more in control of your skin condition. Conventional treatments + are very helpful for the vast majority of patients; however, trying alternative + therapies can also aid in the healing process. Work with your coach to systematically + explore these [Alternative Therapies for Eczema & Psoriasis](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Alternative+Therapies+for+Eczema+and+Psoriasis.pdf)

\n", + "name": "section-0-field-37", "refCdtName": "", "refCdtFieldName": "", "order": + 42, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Guided Imagery Exercises

\n

\n

Guided + imagery is a relaxation technique that helps to lower the stress hormone cortisol + in your body. If you can envision your pain leaving your body, your brain + may be able to achieve that pain relief for you.

\n

\n

Guided imagery + can be done anytime and anywhere, and it doesn\u2019t require any special + equipment. Get started here: [Guided Imagery](https://www.healthline.com/health/guided-imagery) + and [Guided Imagery for Relaxation](https://www.verywellmind.com/use-guided-imagery-for-relaxation-3144606)

\n", + "name": "section-0-field-38", "refCdtName": "", "refCdtFieldName": "", "order": + 43, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Grade Exposure

\n

\n

Graded + exposure is to gradually exposing a person to situations that cause them distress + and anxiety. This exercise is used to create a safe environment in which a + person can reduce anxiety and decrease avoidance of stressful situations.

\n

\n

Graded + exposure therapy helps you face your fears in a gradual way. Take a look at + [this exercise](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Graded+Exposure+Exercise.pdf) + to see if this practice is right for you.

\n

\n

\n", "name": + "section-0-field-39", "refCdtName": "", "refCdtFieldName": "", "order": 44, + "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Procrastination Busters

\n

\n

Break + through procrastination to achieve more of your goals, reach your potential, + miss fewer opportunities, avoid regret, and increase control and influence + over your life!

\n

\n

While starting or finishing a task can seem + daunting, [try these tips](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Procrastination+Busters.pdf) + help with focus to combat procrastination.

\n", "name": "section-0-field-40", + "refCdtName": "", "refCdtFieldName": "", "order": 45, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "

# Tips for Being Active

\n

\n

Exercise has been + proven to positively impact physical and mental health. People who exercise + regularly have a lower risk of developing heart disease and Type 2 diabetes, + suffering from stroke, and developing different forms of cancer. Exercise + can also boost self-esteem, mood, sleep quality, energy, and balance.

\n

\n

The + most difficult part of adopting an active lifestyle is starting it. The second + most difficult part is sticking with it.

\n

\n

Check out these + [tips for starting and sticking with exercise](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Tips+for+Starting+and+Sticking+with+Exercise.pdf) + to discover ways to change your behavior and mindset around maintaining a + healthy, active lifestyle.

\n", "name": "section-0-field-41", "refCdtName": + "", "refCdtFieldName": "", "order": 46, "viewType": "readOnly", "meta": {"type": + "", "required": false}, "prePopulatedValue": null, "attachments": []}, {"label": + "

# Getting Unstuck

\n

\n

Getting stuck is common and can happen + in any area of life, at any time, but it doesn''t need to last forever. Journaling + is an effective method for helping get unstuck and back on your path. Use + these journaling prompts when you''re reluctant to take a risk, have to make + a difficult choice, or face something that makes you uncomfortable.

\n

\n

What + am I waiting for?

\n

\n

What would I do if I wasn''t scared?

\n

\n

Can + I break this process down into manageable steps?

\n

\n

What would + I do if I had all the time and money in the world?

\n

\n

Looking + back on this decision five years from now, wha will I wish I had done?

\n", + "name": "section-0-field-42", "refCdtName": "", "refCdtFieldName": "", "order": + 47, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Emotions and Responses

\n

\n

Emotions + shed light on what we need in order to feel whole and satisfied. Knowing how + to recognize and name these emotions is a key to developing emotional health + and managing stress. [Use this exercise](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Emotions+and+Responses+Guide.pdf) + to identify your emotions and take specific actions to help you manage them.

\n

\n

## For all emotions, remember:

\n

\n

Feelings + will not hurt you, even if they are uncomfortable. They are not dangerous, + they

\n

are simply messengers.

\n

\n

Feelings are always temporary. + They pass just like the weather.

\n

\n

It\u2019s okay to feel the + way you do. You don\u2019t need a reason.

\n

\n

It\u2019s safe + for other people to have feelings, too.

\n

\n

\n", "name": + "section-0-field-43", "refCdtName": "", "refCdtFieldName": "", "order": 48, + "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Breathwork for Better Sleep

\n

\n

Breathing + exercises help you to reduce stress and anxiety, improve lung function, detox + your body, improve your digestion, sharpen cognitive function, and improve + the quality of your sleep.

\n

\n

Learn how to use your breath to + get better sleep and improve your overall well being with this guide: [Breathwork + for Better Sleep](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Breathwork+for+Better+Sleep.pdf)

\n", + "name": "section-0-field-44", "refCdtName": "", "refCdtFieldName": "", "order": + 49, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Ways to Counteract a Bad Mood

\n

\n

Negative + moods can be subtle indications that we need more energy or a change in perspective. Here + are some ways to help address bad moods, which you can review and work on + with your coach: [How to Counteract a Bad Mood](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Exercises+to+Alleviate+Anxiety.pdf)

\n", + "name": "section-0-field-45", "refCdtName": "", "refCdtFieldName": "", "order": + 50, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Exercises to Alleviate Anxiety

\n

\n

Reducing + anxiety in your life can lead to reduced muscle tension and inflammation, + lower blood pressure, better sleep, improved digestion, and a boosted immune + system.

\n

\n

If you\u2019re feeling fidgety and anxious, take + a break and engage in a calm and repetitive

\n

movement with your hands. + This can help calm the restlessness in your brain.

\n

\n

Try one + of these 5 repetitive movements you can do with your hands that occupy your + mind:

\n

\n

Shuffle a deck of cards.

\n

\n

Methodically + rub lotion onto your hands, arms, or legs.

\n

\n

Chop zucchini, + eggplant, or other vegetables into small pieces that are the same size.

\n

\n

Squeeze + a stress ball or ball of playdoh

\n

\n

Knit or crochet a simple + pattern

\n", "name": "section-0-field-47", "refCdtName": "", "refCdtFieldName": + "", "order": 51, "viewType": "readOnly", "meta": {"type": "", "required": + false}, "prePopulatedValue": null, "attachments": []}, {"label": "

# Positivity + Journaling

\n

\n

Use a positivity journal to switch the focus off + negative or anxiety-producing thoughts that may be out of your control. Positivity + has been shown to improve physical health, mental well-being, reduce stress, + increase self-esteem, and improve relationships.

\n

\n

A positivity + journal is just like a regular journal except the pages are devoted to positive + thoughts and events. Use these tips to get started on your own positivity + journal: [Positivity Journaling](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Positivity+Journaling.pdf)

\n", + "name": "section-0-field-46", "refCdtName": "", "refCdtFieldName": "", "order": + 52, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Mantras

\n

\n

Mantras + can provide peace of mind and can be highly beneficial for brain health. Research + has shown that certain parts of our brain are activated when we recite mantras, + increasing positivity.

\n

\n

Use [these examples](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Mantras.pdf) + to find a mantra that resonates with you.

\n", "name": "section-0-field-48", + "refCdtName": "", "refCdtFieldName": "", "order": 53, "viewType": "readOnly", + "meta": {"type": "", "required": false}, "prePopulatedValue": null, "attachments": + []}, {"label": "

# Blue Light and Sleep

\n

\n

The light emitted + from our electronic devices can negatively impact our overall health, alertness, + and our circadian clock which coordinates our daily sleep and wake cycles. + Poor quality sleep has shown to increase the risk of heart disease, diabetes, + and obesity.

\n

\n

Limiting blue light before bed can have a positive + effect on your sleep cycle and overall health.

\n

\n

Learn more + about this here: [How Blue Light Affects Sleep and What To Do](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/How+Blue+Light+Affects+Sleep.pdf)

\n", + "name": "section-0-field-49", "refCdtName": "", "refCdtFieldName": "", "order": + 54, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Growth vs. Fixed Mindset

\n

\n

A + growth mindset means you believe your talents can be developed through hard + work, good strategies, and input from others - basically, you put energy into + learning!*

\n

\n

Having a growth mindset can improve your health + and help you grow. It can also improve your self-awareness and self-esteem, + strengthen your confidence, increase resilience, improve your relationships, + and help you take responsibility for your life and happiness.

\n

\n

Research + shows that mindsets play a significant role in determining life\u2019s outcomes. + Learn to hone the skill of controlling your mindset by following these tips: + [Power of Mindset](https://news.stanford.edu/report/2021/09/15/mindsets-clearing-lens-life/)

\n

\n

*From + Carol Dweck, the Lewis & Virginia Eaton Professor of Psychology at Stanford + University and the author of \"Mindset: The New Psychology of Success\"

\n", + "name": "section-0-field-50", "refCdtName": "", "refCdtFieldName": "", "order": + 55, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# AM & PM Journaling

\n

\n

Journaling + can help reduce stress and anxiety, strengthen memory, boost health and well-being, + help you organize your goals and next steps, and facilitate personal growth.

\n

\n

Reflecting + on daily experiences, relationships, and personal values can help you get + in better touch with your thoughts and feelings. We''ve selected some prompts + to get you started: [AM & PM Self-Reflection Journal Exercise](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Morning+and+Evening+Self-Reflection+Journaling+Exercise.pdf)

\n", + "name": "section-0-field-51", "refCdtName": "", "refCdtFieldName": "", "order": + 56, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Core Beliefs Journaling

\n

\n

Core + beliefs are deeply held beliefs that inform how people see themselves and + the world. Tracking your beliefs in a journal is an easy source of reflection.

\n

\n

This + exercise helps you define your values and reframe your outlook, especially + as they relate to your skin condition. Follow this link for some core belief + journal prompts: [Core Beliefs Journaling](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/Core+Beliefs+Journaling+Exercise.pdf)

\n", + "name": "section-0-field-52", "refCdtName": "", "refCdtFieldName": "", "order": + 57, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# AEIOU Activity Log

\n

\n

The + way we invest our time and attention is critical to whether or not we feel + energized. High levels of engagement often coincide with high levels of energy. + Monitoring and recording your activities, environments, interactions, objects + (eg electonic devices), and users (people) can help shed light on energy restoring + versus draining sitiuations. With this awareness you can make informed choices + about how you spend your time to maintain adequate energy levels.

\n

\n

Try + this journaling exercise to see patterns of high energy and engagement and + what was in place to make it happen: [AEIOU Activity Log](https://zest-public-patient-docs.s3.us-west-2.amazonaws.com/AEIOU+Activity+Log.pdf)

\n", + "name": "section-0-field-53", "refCdtName": "", "refCdtFieldName": "", "order": + 58, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "

# Blue Zones Healthy Habits

\n

\n

Blue + Zones are areas in the world where people live the longest while also maintaining + high levels of health and function into their 90s. These communities share + common values including, enriching social circles, high consumption of nutrient + rich plants, daily. moderate activity and joy. Incorporating these accessible + lifestyle choices into your routine will create a happier, healthier life + with greater longevity.

\n

\n

Review this list of lifestyle choices: + [Blue Zones Healthy Habits](https://www.bluezones.com/2018/01/20-habits-healthier-happier-life/)

\n", + "name": "section-0-field-54", "refCdtName": "", "refCdtFieldName": "", "order": + 59, "viewType": "readOnly", "meta": {"type": "", "required": false}, "prePopulatedValue": + null, "attachments": []}, {"label": "Optional: Lifestyle Recommendations (Patient + Facing)", "name": "", "refCdtName": "cdt-soap-notes", "refCdtFieldName": "cdtf-lifestyle-rec", + "order": 60, "viewType": "question", "meta": {"type": "textarea", "required": + false}, "prePopulatedValue": {"type": "PREVIOUS_ASSESSMENT"}, "attachments": + []}]}, {"title": "Encounter Status", "name": "section-2", "order": 1, "fields": + [{"label": "Status?", "name": "", "refCdtName": "cdt-encounter-status", "refCdtFieldName": + "cdtf-encounter-notes-status", "order": 0, "viewType": "question", "meta": + {"type": "select", "required": false}, "prePopulatedValue": {"type": "DEFAULT_VALUE", + "defaultValue": "Completed"}, "attachments": []}]}], "scoring": {"formula": + "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": + {"elements": [{"type": "READ_ONLY", "action": "SHOW", "operation": "AND", + "conditions": [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": + "cdtf-otc-treatment-list", "value": "Petroleum Jelly"}], "name": "section-0-field-0"}, + {"type": "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": + [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", + "value": "Hydrocortisone 1%"}], "name": "section-0-field-1"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", "value": "Tar + Shampoo"}], "name": "section-0-field-2"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Food Diary"}], "name": "section-0-field-3"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Elimination Diet"}], "name": "section-0-field-4"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Sleep Diary"}], "name": "section-0-field-5"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Sleep Hygiene"}], "name": "section-0-field-6"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", "value": "Moisturizer"}], + "name": "section-0-field-8"}, {"type": "READ_ONLY", "action": "SHOW", "operation": + "AND", "conditions": [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": + "cdtf-otc-treatment-list", "value": "Tar Lotion/Ointment"}], "name": "section-0-field-7"}, + {"type": "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": + [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", + "value": "Salicylic Acid"}], "name": "section-0-field-9"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", "value": "Fragrance-free + Laundry Products"}], "name": "section-0-field-10"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", "value": "Anti-histamines"}], + "name": "section-0-field-11"}, {"type": "READ_ONLY", "action": "SHOW", "operation": + "AND", "conditions": [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": + "cdtf-diet-treatment-list", "value": "Water Intake Log"}], "name": "section-0-field-12"}, + {"type": "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": + [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", + "value": "Itchy Dozen Log"}], "name": "section-0-field-13"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Portion Size Visuals"}], "name": "section-0-field-14"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Mindful Eating"}], "name": "section-0-field-15"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Watery Foods"}], "name": "section-0-field-16"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Make Water Interesting"}], "name": "section-0-field-17"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-diet-treatment-list", "value": + "Anti-inflammatory Foods"}], "name": "section-0-field-18"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Walking Step Count"}], "name": "section-0-field-19"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Meditation"}], "name": "section-0-field-20"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Visualization"}], "name": "section-0-field-21"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Breathing Exercises"}], "name": "section-0-field-22"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Yoga"}], "name": "section-0-field-23"}, {"type": "READ_ONLY", "action": "SHOW", + "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": "cdt-treatments", + "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": "Qigong"}], "name": + "section-0-field-24"}, {"type": "READ_ONLY", "action": "SHOW", "operation": + "AND", "conditions": [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": + "cdtf-lifestyle-treatment-list", "value": "Strength Training"}], "name": "section-0-field-25"}, + {"type": "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": + [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Eczema Journal"}], "name": "section-0-field-26"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Gratitude Journal"}], "name": "section-0-field-27"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Mood Journal"}], "name": "section-0-field-28"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Thought Monitoring Journal"}], "name": "section-0-field-29"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Affirmations"}], "name": "section-0-field-30"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Morning Pages"}], "name": "section-0-field-31"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Habit Stacking"}], "name": "section-0-field-32"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Mindfulness Exercise"}], "name": "section-0-field-33"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Body Scan"}], "name": "section-0-field-34"}, {"type": "READ_ONLY", "action": + "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Progressive Muscle Relaxation"}], "name": "section-0-field-35"}, {"type": + "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": [{"type": + "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Identifying an Anxious State"}], "name": "section-0-field-36"}, + {"type": "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": + [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Alternative Therapies"}], "name": "section-0-field-37"}, {"type": + "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": [{"type": + "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Guided Imagery Exercises"}], "name": "section-0-field-38"}, {"type": + "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": [{"type": + "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Grade Exposure"}], "name": "section-0-field-39"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Procrastination Busters"}], "name": "section-0-field-40"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Tips for Being Active"}], "name": "section-0-field-41"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Getting Unstuck"}], "name": "section-0-field-42"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Emotions and Reponses"}], "name": "section-0-field-43"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Breathwork for Better Sleep"}], "name": "section-0-field-44"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Ways to Counteract a Bad Mood"}], "name": "section-0-field-45"}, {"type": + "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": [{"type": + "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Exercises to Alleviate Anxiety"}], "name": "section-0-field-47"}, + {"type": "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": + [{"type": "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Positivity Journaling"}], "name": "section-0-field-46"}, {"type": + "READ_ONLY", "action": "SHOW", "operation": "AND", "conditions": [{"type": + "EQUAL", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", + "value": "Mantras"}], "name": "section-0-field-48"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Blue Light and Sleep"}], "name": "section-0-field-49"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Growth vs Fixed Mindset"}], "name": "section-0-field-50"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "AM & PM Journaling"}], "name": "section-0-field-51"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Core Beliefs Journaling"}], "name": "section-0-field-52"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "AEIOU Activity Log"}], "name": "section-0-field-53"}, {"type": "READ_ONLY", + "action": "SHOW", "operation": "AND", "conditions": [{"type": "EQUAL", "refCdtName": + "cdt-treatments", "refCdtFieldName": "cdtf-lifestyle-treatment-list", "value": + "Blue Zone Health Habits"}], "name": "section-0-field-54"}], "events": []}, + "displayType": "SECTIONS", "autoCompleted": false, "_containsPHI": true}]' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:16 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '70246' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_cdt_formation_read.yaml b/test/cassettes/test_cdt_formation_read.yaml new file mode 100644 index 0000000..eed0196 --- /dev/null +++ b/test/cassettes/test_cdt_formation_read.yaml @@ -0,0 +1,118 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/cdts/allergies + response: + body: + string: '{"id": "6f288a07-15c6-4e9d-b5b5-d1d04f6259d0", "name": "allergies", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "allergy", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "reaction_symptom", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "severity", "type": "select", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Mild", "value": "Mild", "refCdtName": null}, + {"label": "Moderate", "value": "Moderate", "refCdtName": null}, {"label": + "Some", "value": "Some", "refCdtName": null}, {"label": "Small", "value": + "Small", "refCdtName": null}, {"label": "Severe", "value": "Severe", "refCdtName": + null}], "multiple": false}}, {"name": "id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:17 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '4411' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_cdt_formations_read.yaml b/test/cassettes/test_cdt_formations_read.yaml new file mode 100644 index 0000000..b5d5c28 --- /dev/null +++ b/test/cassettes/test_cdt_formations_read.yaml @@ -0,0 +1,3036 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/cdts?page=0 + response: + body: + string: '[{"id": "6f288a07-15c6-4e9d-b5b5-d1d04f6259d0", "name": "allergies", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "allergy", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "reaction_symptom", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "severity", "type": "select", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Mild", "value": "Mild", "refCdtName": null}, + {"label": "Moderate", "value": "Moderate", "refCdtName": null}, {"label": + "Some", "value": "Some", "refCdtName": null}, {"label": "Small", "value": + "Small", "refCdtName": null}, {"label": "Severe", "value": "Severe", "refCdtName": + null}], "multiple": false}}, {"name": "id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "fa1f6d40-8c23-4feb-aaec-db0318f81470", + "name": "asm-patient-interview", "title": null, "label": null, "version": + 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "response", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "8fc72ef7-8aee-42b2-8db5-527a1d368282", "name": "body_weight", "title": + null, "label": null, "version": 74, "internal": false, "readable": true, "updatable": + true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "current_weight", + "type": "integer", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "cdtf-current-height", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "d934b027-8b62-412d-be84-fbc0ae55254f", "name": + "cdt-app-date-date-time", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-date-only", "type": "date", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-date-time", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "3f15a668-20e0-419f-b052-de8c8305bd83", + "name": "cdt-care-improvement", "title": null, "label": null, "version": 74, + "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "cdtf-care-improvement", "type": + "textarea", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "19dc8ac9-02e1-426c-8004-ad4159b81eb7", "name": + "cdt-check-ins", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-skin-look-feel", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "INTEGER", "meta": {"required": + false, "options": [{"label": "Better than normal", "value": 1, "refCdtName": + null}, {"label": "Same as usual", "value": 2, "refCdtName": null}, {"label": + "Worse than normal", "value": 3, "refCdtName": null}]}}, {"name": "cdtf-confidence", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "INTEGER", "meta": {"required": false, "options": [{"label": "Better than + normal", "value": 1, "refCdtName": null}, {"label": "Same as usual", "value": + 2, "refCdtName": null}, {"label": "Worse than normal", "value": 3, "refCdtName": + null}]}}, {"name": "cdtf-control", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "INTEGER", "meta": {"required": false, "options": [{"label": + "Better than normal", "value": 1, "refCdtName": null}, {"label": "Same as + usual", "value": 2, "refCdtName": null}, {"label": "Worse than normal", "value": + 3, "refCdtName": null}]}}, {"name": "cdtf-confidence-improve", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "INTEGER", + "meta": {"required": false, "options": [{"label": "Not at all confident", + "value": 1, "refCdtName": null}, {"label": "Slightly confident", "value": + 2, "refCdtName": null}, {"label": "Moderately confident", "value": 3, "refCdtName": + null}, {"label": "Very confident", "value": 4, "refCdtName": null}, {"label": + "Extremely confident", "value": 5, "refCdtName": null}]}}, {"name": "cdtf-impact-daily-activities", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "INTEGER", "meta": {"required": false, "options": [{"label": "Never", "value": + 4, "refCdtName": null}, {"label": "Rarely", "value": 3, "refCdtName": null}, + {"label": "Sometimes", "value": 2, "refCdtName": null}, {"label": "Often", + "value": 1, "refCdtName": null}, {"label": "Always", "value": 5, "refCdtName": + null}]}}, {"name": "cdtf-activities-impacted", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Exercise", "value": "Exercise", "refCdtName": + null}, {"label": "Social Life", "value": "Social Life", "refCdtName": null}, + {"label": "Hobbies", "value": "Hobbies", "refCdtName": null}, {"label": "Relationships", + "value": "Relationships", "refCdtName": null}, {"label": "Work", "value": + "Work", "refCdtName": null}, {"label": "Sleep", "value": "Sleep", "refCdtName": + null}, {"label": "Family life", "value": "Family life", "refCdtName": null}, + {"label": "Housework", "value": "Housework", "refCdtName": null}], "multiple": + true}}, {"name": "cdtf-improvement-barriers", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Time", "value": "Time", "refCdtName": null}, + {"label": "Cost of treatment", "value": "Cost of treatment", "refCdtName": + null}, {"label": "Mental Energy", "value": "Mental Energy", "refCdtName": + null}, {"label": "Access to care", "value": "Access to care", "refCdtName": + null}, {"label": "Knowledge & understanding", "value": "Knowledge & understanding", + "refCdtName": null}, {"label": "Other", "value": "Other", "refCdtName": null}]}}, + {"name": "cdtf-1-month-goal", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-3-month-goal", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-impactful-symptoms", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Itching", "value": "Itching", "refCdtName": + null}, {"label": "Pain", "value": "Pain", "refCdtName": null}, {"label": "Swelling", + "value": "Swelling", "refCdtName": null}, {"label": "Sensory discomfort", + "value": "Sensory discomfort", "refCdtName": null}, {"label": "Flaking skin", + "value": "Flaking skin", "refCdtName": null}, {"label": "Bleeding/weeping + skin", "value": "Bleeding/weeping skin", "refCdtName": null}, {"label": "Trouble + sleeping", "value": "Trouble sleeping", "refCdtName": null}, {"label": "Burning + or stinging", "value": "Burning or stinging", "refCdtName": null}, {"label": + "Other", "value": "Other", "refCdtName": null}], "multiple": true}}, {"name": + "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "07e2585a-7a5e-418f-bd2f-081df6c36b6f", "name": "cdt-coaching-notes", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "cdtf-focus-today", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-progress-made", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "cdtf-goal-barriers", "type": + "textarea", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-next-steps", "type": "textarea", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-patient-overview", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-topics-discussed", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": true}, {"id": "b32dec48-cc25-4390-926e-351da8db787d", + "name": "cdt-diagnosis", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-diagnosis", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Psoriasis", "value": "Psoriasis", "refCdtName": + null}, {"label": "Eczema", "value": "Eczema", "refCdtName": null}, {"label": + "Psoriasis and Eczema", "value": "Psoriasis and Eczema", "refCdtName": null}]}}, + {"name": "cdtf-comorbidity", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "None", "value": "None", "refCdtName": null}, {"label": "Anxiety", "value": + "Anxiety", "refCdtName": null}, {"label": "Arthritis", "value": "Arthritis", + "refCdtName": null}, {"label": "Asthma", "value": "Asthma", "refCdtName": + null}, {"label": "Atherosclerosis", "value": "Atherosclerosis", "refCdtName": + null}, {"label": "COPD", "value": "COPD", "refCdtName": null}, {"label": "Crohn''s + Disease", "value": "Crohn''s Disease", "refCdtName": null}, {"label": "Depression", + "value": "Depression", "refCdtName": null}, {"label": "Diabetes", "value": + "Diabetes", "refCdtName": null}, {"label": "Environmental Allergies", "value": + "Environmental Allergies", "refCdtName": null}, {"label": "Food Allergies", + "value": "Food Allergies", "refCdtName": null}, {"label": "Heart Disease", + "value": "Heart Disease", "refCdtName": null}, {"label": "High Blood Pressure", + "value": "High Blood Pressure", "refCdtName": null}, {"label": "Hives", "value": + "Hives", "refCdtName": null}, {"label": "Kidney Disease", "value": "Kidney + Disease", "refCdtName": null}, {"label": "Liver Disease", "value": "Liver + Disease", "refCdtName": null}, {"label": "Osteoporosis", "value": "Osteoporosis", + "refCdtName": null}, {"label": "Skin Allergies", "value": "Skin Allergies", + "refCdtName": null}, {"label": "Skin Cancer", "value": "Skin Cancer", "refCdtName": + null}, {"label": "Skin Injections", "value": "Skin Injections", "refCdtName": + null}, {"label": "Sleep Apnea", "value": "Sleep Apnea", "refCdtName": null}, + {"label": "Trouble Sleeping", "value": "Trouble Sleeping", "refCdtName": null}, + {"label": "Ulcertative Colitis", "value": "Ulcertative Colitis", "refCdtName": + null}, {"label": "Uveitis", "value": "Uveitis", "refCdtName": null}], "multiple": + true}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "de941707-eae1-46a0-88af-49c261e7b6b3", "name": + "cdt-encounter-status", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-encounter-notes-status", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Completed", "value": "Completed", + "refCdtName": null}, {"label": "No Show", "value": "No Show", "refCdtName": + null}, {"label": "Cancelled", "value": "Cancelled", "refCdtName": null}]}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "c85653e4-302f-45cb-8989-412f416f7ce6", "name": "cdt-flare-description", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "cdtf-flare-description", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": true, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "Dry, cracked skin", "value": "Dry, cracked skin", "refCdtName": null}, {"label": + "Thick, scaling patches", "value": "Thick, scaling patches", "refCdtName": + null}, {"label": "Itchy", "value": "Itchy", "refCdtName": null}, {"label": + "Painful or sore", "value": "Painful or sore", "refCdtName": null}, {"label": + "Skin or joint swelling", "value": "Skin or joint swelling", "refCdtName": + null}, {"label": "Dry, leathery, or cracked", "value": "Dry, leathery, or + cracked", "refCdtName": null}, {"label": "Hives or swelling", "value": "Hives + or swelling", "refCdtName": null}, {"label": "Yellow, crusted, oozing skin", + "value": "Yellow, crusted, oozing skin", "refCdtName": null}, {"label": "Other", + "value": "Other", "refCdtName": null}], "multiple": true}}, {"name": "cdtf-currently-active", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": false, "options": [{"label": "Yes", "value": + "Yes", "refCdtName": null}, {"label": "No", "value": "No", "refCdtName": null}]}}, + {"name": "cdtf-disease-distribution", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "Hand or wrist", "value": "Hand or wrist", "refCdtName": null}, {"label": + "Elbow or crease", "value": "Elbow or crease", "refCdtName": null}, {"label": + "Arm", "value": "Arm", "refCdtName": null}, {"label": "Foot or ankle", "value": + "Foot or ankle", "refCdtName": null}, {"label": "Knee or crease", "value": + "Knee or crease", "refCdtName": null}, {"label": "Leg", "value": "Leg", "refCdtName": + null}, {"label": "Chest or stomach", "value": "Chest or stomach", "refCdtName": + null}, {"label": "Back", "value": "Back", "refCdtName": null}, {"label": "Genital + area", "value": "Genital area", "refCdtName": null}, {"label": "Head or neck", + "value": "Head or neck", "refCdtName": null}], "multiple": true}}, {"name": + "cdtf-frequency", "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": false, "options": [{"label": "0 - 1 time", + "value": "0 - 1 time", "refCdtName": null}, {"label": "1 - 2 times", "value": + "1 - 2 times", "refCdtName": null}, {"label": "2 - 3 times", "value": "2 - + 3 times", "refCdtName": null}, {"label": "3 - 4 times", "value": "3 - 4 times", + "refCdtName": null}, {"label": "5 or more times", "value": "5 or more times", + "refCdtName": null}]}}, {"name": "cdtf-flare-often", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Hand or wrist", "value": "Hand or wrist", "refCdtName": + null}, {"label": "Elbow or crease", "value": "Elbow or crease", "refCdtName": + null}, {"label": "Arm", "value": "Arm", "refCdtName": null}, {"label": "Foot + or ankle", "value": "Foot or ankle", "refCdtName": null}, {"label": "Knee + or crease", "value": "Knee or crease", "refCdtName": null}, {"label": "Leg", + "value": "Leg", "refCdtName": null}, {"label": "Chest or stomach", "value": + "Chest or stomach", "refCdtName": null}, {"label": "Back", "value": "Back", + "refCdtName": null}, {"label": "Genital area", "value": "Genital area", "refCdtName": + null}, {"label": "Head or neck", "value": "Head or neck", "refCdtName": null}], + "multiple": true}}, {"name": "cdtf-distribution-frequency", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Hand or wrist", "value": "Hand + or wrist", "refCdtName": null}, {"label": "Elbow or crease", "value": "Elbow + or crease", "refCdtName": null}, {"label": "Arm", "value": "Arm", "refCdtName": + null}, {"label": "Foot or ankle", "value": "Foot or ankle", "refCdtName": + null}, {"label": "Knee or crease", "value": "Knee or crease", "refCdtName": + null}, {"label": "Leg", "value": "Leg", "refCdtName": null}, {"label": "Chest + or Stomach", "value": "Chest or Stomach", "refCdtName": null}, {"label": "Back", + "value": "Back", "refCdtName": null}, {"label": "Genital area", "value": "Genital + area", "refCdtName": null}, {"label": "Head or neck", "value": "Head or neck", + "refCdtName": null}], "multiple": true}}, {"name": "id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "19b52a61-544f-47e6-90b3-53f567f5be21", + "name": "cdt-general-note", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "general_note", "type": "textarea", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": true}, + {"id": "6cfc57bf-13a1-4d90-b100-0dd57a79fd99", "name": "cdt-intake-form", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "cdtf-time-diagnosed", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-disease-location", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-triggers", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-triggers-detail", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-previous-provider-practice-url", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-has-concomitant-rx", "type": "checkbox", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": "CHECKBOX", "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-concomitant-rx-detail", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-has-allergies", "type": "checkbox", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": "CHECKBOX", "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-allergies-detail", "type": "textarea", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-pregnancy-status", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-comorbidities", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-pcp-name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-itch-rating", "type": "integer", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-itch-detail", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "cdtf-sleep-rating", "type": + "integer", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-sleep-detail", "type": "textarea", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-stress-rating", "type": "integer", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-stress-detail", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "cdtf-maintained-7d", "type": + "integer", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "ac50d663-415b-4bad-b80e-09492f1e818d", "name": + "cdt-intake-summary", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-typeform-summary", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "7a46c094-7ec9-426b-9b71-8337397510f8", "name": + "cdt-intake-treatments", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-using-rx", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Yes", "value": "Yes", "refCdtName": null}, {"label": + "No", "value": "No", "refCdtName": null}]}}, {"name": "cdtf-previous-prescriber", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "INTEGER", "meta": {"required": false, "options": [{"label": "Primary Care + Provider", "value": 1, "refCdtName": null}, {"label": "Dermatologist", "value": + 2, "refCdtName": null}, {"label": "Functional Medicine Doctor", "value": 3, + "refCdtName": null}, {"label": "Other", "value": 4, "refCdtName": null}, {"label": + "Urgent Care Provider", "value": 5, "refCdtName": null}]}}, {"name": "cdtf-types-medications", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": false, "options": [{"label": "Topical", "value": + "1", "refCdtName": null}, {"label": "UVB Light Therapy", "value": "2", "refCdtName": + null}, {"label": "Oral", "value": "3", "refCdtName": null}, {"label": "Injection", + "value": "4", "refCdtName": null}, {"label": "IV Infusion", "value": "5", + "refCdtName": null}, {"label": "Other", "value": "Other", "refCdtName": null}], + "multiple": true}}, {"name": "cdtf-medication-names", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-otc-meds-intake", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "43be3819-e702-4b92-8a93-0ccc159d4804", + "name": "cdt-internal-comms", "title": null, "label": null, "version": 74, + "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "cdtf-internal-communication", "type": + "textarea", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "7b675507-0289-42fe-b433-b80e2490e4f1", "name": + "cdt-member-surveys", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-trigger-member-survey", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Yes", "value": "Yes", "refCdtName": + null}]}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "31656104-c49d-486f-9aa6-f732cf6935c5", "name": + "cdt-onboarding-form", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-rationale", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-over-eighteen", "type": "checkbox", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "CHECKBOX", "valueType": null, "meta": {"required": false}}, {"name": "cdtf-diagnosis", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-impacted-activities", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-rx-history", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-rx-prior-type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-rx-stop-rationale", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-rx-current-type", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-rx-current-topical", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-rx-current-oral", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-rx-current-injection", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-rx-current-infusion", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-region", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-new-treatment-intent", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-phone-number", + "type": "phone", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-insurance-type", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-impact-frequency", "type": "integer", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-rx-stop-timing", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "199e7e94-a582-44f6-9b6c-5cad4af95fa3", "name": + "cdt-otc-topicals-test", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-salicylic-acid", "type": "textarea", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-coal-tar", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-list-otc", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": false, "options": [{"label": "salicylic acid", + "value": "salicylic acid", "refCdtName": null}, {"label": "coal tar", "value": + "coal tar", "refCdtName": null}]}}, {"name": "id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "4b221c31-02f6-4658-a8d3-c68274b4275d", + "name": "cdt-patientreportedtreatments", "title": null, "label": null, "version": + 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "cdtf-treatments", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "6ecf5843-4dbd-406b-85dc-e40cb91de99a", "name": + "cdt-pharmacy", "title": null, "label": null, "version": 74, "internal": false, + "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", + "fields": [{"name": "name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "address", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-phone", "type": "phone", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "716f3388-bd1d-4b55-89fe-257e9d1418d7", "name": "cdt-quality-of-life", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "cdtf-overal-qol", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "INTEGER", "meta": {"required": false, "options": [{"label": + "Terrible", "value": 1, "refCdtName": null}, {"label": "2", "value": 2, "refCdtName": + null}, {"label": "Just Okay", "value": 3, "refCdtName": null}, {"label": "4", + "value": 4, "refCdtName": null}, {"label": "Amazing", "value": 5, "refCdtName": + null}]}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "a40dfe58-b90f-4426-b69a-9d11096b0954", "name": + "cdt-severity", "title": null, "label": null, "version": 74, "internal": false, + "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", + "fields": [{"name": "cdtf-body-surface-area", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "0-2%", "value": "0-2%", "refCdtName": null}, + {"label": "2-5%", "value": "2-5%", "refCdtName": null}, {"label": "5-10%", + "value": "5-10%", "refCdtName": null}, {"label": ">10%", "value": ">10%", + "refCdtName": null}], "multiple": false}}, {"name": "id", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": true}, {"id": "4bf46411-ee60-4abd-8dc3-2a6966ce95f1", + "name": "cdt-soap-notes", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-soap-subjective", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-soap-objective", "type": "textarea", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-soap-assessment", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-soap-plan", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "cdtf-otc-rec", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-nutrition-rec", "type": "textarea", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-lifestyle-rec", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-visit-summary", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": true}, {"id": "085eb3a4-6a18-4a16-9e82-d02def667f72", + "name": "cdt-treatments", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdtf-otc-treatment-list", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Petroleum Jelly", "value": "Petroleum + Jelly", "refCdtName": null}, {"label": "Hydrocortisone 1%", "value": "Hydrocortisone + 1%", "refCdtName": null}, {"label": "Tar Shampoo", "value": "Tar Shampoo", + "refCdtName": null}, {"label": "Tar Lotion/Ointment", "value": "Tar Lotion/Ointment", + "refCdtName": null}, {"label": "Moisturizer", "value": "Moisturizer", "refCdtName": + null}, {"label": "Salicylic Acid", "value": "Salicylic Acid", "refCdtName": + null}, {"label": "Anti-histamines", "value": "Anti-histamines", "refCdtName": + null}, {"label": "Fragrance-free Laundry Products", "value": "Fragrance-free + Laundry Products", "refCdtName": null}]}}, {"name": "cdtf-diet-treatment-list", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": false, "options": [{"label": "Food Diary", + "value": "Food Diary", "refCdtName": null}, {"label": "Elimination Diet", + "value": "Elimination Diet", "refCdtName": null}, {"label": "Water Intake + Log", "value": "Water Intake Log", "refCdtName": null}, {"label": "Itchy Dozen + Log", "value": "Itchy Dozen Log", "refCdtName": null}, {"label": "Portion + Size Visuals", "value": "Portion Size Visuals", "refCdtName": null}, {"label": + "Mindful Eating", "value": "Mindful Eating", "refCdtName": null}, {"label": + "Watery Foods", "value": "Watery Foods", "refCdtName": null}, {"label": "Make + Water Interesting", "value": "Make Water Interesting", "refCdtName": null}, + {"label": "Anti-inflammatory Foods", "value": "Anti-inflammatory Foods", "refCdtName": + null}]}}, {"name": "cdtf-lifestyle-treatment-list", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Sleep Diary", "value": "Sleep Diary", "refCdtName": + null}, {"label": "Sleep Hygiene", "value": "Sleep Hygiene", "refCdtName": + null}, {"label": "Walking Step Count", "value": "Walking Step Count", "refCdtName": + null}, {"label": "Meditation", "value": "Meditation", "refCdtName": null}, + {"label": "Visualization", "value": "Visualization", "refCdtName": null}, + {"label": "Breathing Exercises", "value": "Breathing Exercises", "refCdtName": + null}, {"label": "Yoga", "value": "Yoga", "refCdtName": null}, {"label": "Qigong", + "value": "Qigong", "refCdtName": null}, {"label": "Strength Training", "value": + "Strength Training", "refCdtName": null}, {"label": "Eczema Journal", "value": + "Eczema Journal", "refCdtName": null}, {"label": "Gratitude Journal", "value": + "Gratitude Journal", "refCdtName": null}, {"label": "Mood Journal", "value": + "Mood Journal", "refCdtName": null}, {"label": "Thought Monitoring Journal", + "value": "Thought Monitoring Journal", "refCdtName": null}, {"label": "Affirmations", + "value": "Affirmations", "refCdtName": null}, {"label": "Morning Pages", "value": + "Morning Pages", "refCdtName": null}, {"label": "Habit Stacking", "value": + "Habit Stacking", "refCdtName": null}, {"label": "Mindfulness Exercise", "value": + "Mindfulness Exercise", "refCdtName": null}, {"label": "Body Scan", "value": + "Body Scan", "refCdtName": null}, {"label": "Progressive Muscle Relaxation", + "value": "Progressive Muscle Relaxation", "refCdtName": null}, {"label": "Guided + Imagery Exercises", "value": "Guided Imagery Exercises", "refCdtName": null}, + {"label": "Grade Exposure", "value": "Grade Exposure", "refCdtName": null}, + {"label": "Procrastination Busters", "value": "Procrastination Busters", "refCdtName": + null}, {"label": "Tips for Being Active", "value": "Tips for Being Active", + "refCdtName": null}, {"label": "Getting Unstuck", "value": "Getting Unstuck", + "refCdtName": null}, {"label": "Emotions and Reponses", "value": "Emotions + and Reponses", "refCdtName": null}, {"label": "Identifying an Anxious State", + "value": "Identifying an Anxious State", "refCdtName": null}, {"label": "Alternative + Therapies", "value": "Alternative Therapies", "refCdtName": null}, {"label": + "Breathwork for Better Sleep", "value": "Breathwork for Better Sleep", "refCdtName": + null}, {"label": "Ways to Counteract a Bad Mood", "value": "Ways to Counteract + a Bad Mood", "refCdtName": null}, {"label": "Exercises to Alleviate Anxiety", + "value": "Exercises to Alleviate Anxiety", "refCdtName": null}, {"label": + "Positivity Journaling", "value": "Positivity Journaling", "refCdtName": null}, + {"label": "Mantras", "value": "Mantras", "refCdtName": null}, {"label": "Blue + Light and Sleep", "value": "Blue Light and Sleep", "refCdtName": null}, {"label": + "Growth vs Fixed Mindset", "value": "Growth vs Fixed Mindset", "refCdtName": + null}, {"label": "AM & PM Journaling", "value": "AM & PM Journaling", "refCdtName": + null}, {"label": "Core Beliefs Journaling", "value": "Core Beliefs Journaling", + "refCdtName": null}, {"label": "AEIOU Activity Log", "value": "AEIOU Activity + Log", "refCdtName": null}, {"label": "Blue Zone Health Habits", "value": "Blue + Zone Health Habits", "refCdtName": null}]}}, {"name": "id", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "af0912aa-5bb0-4644-9f4f-5656734fcde0", + "name": "cdt-treatment-satisfaction", "title": null, "label": null, "version": + 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "cdtf-rx-sat", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "1", "value": "1", "refCdtName": + null}, {"label": "2", "value": "2", "refCdtName": null}, {"label": "3", "value": + "3", "refCdtName": null}, {"label": "4", "value": "4", "refCdtName": null}, + {"label": "5", "value": "5", "refCdtName": null}]}}, {"name": "id", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "bb83e0aa-e685-4186-a366-89dbdcb53c01", + "name": "cdt-weight", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "cdt-weight", "type": "integer", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"minValue": "0", "maxValue": + "500", "required": false}}, {"name": "id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "e6da0717-9768-46b3-8778-61b7b992be6c", + "name": "df_allergies", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "allergen", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": true}}, + {"name": "reactions", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "severity", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "onset_date", "type": "date", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "last_modified_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "status", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": true, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": true, "options": [{"label": "Active", "value": + "Active", "refCdtName": null}, {"label": "Inactive", "value": "Inactive", + "refCdtName": null}, {"label": "Deleted", "value": "Deleted", "refCdtName": + null}]}}, {"name": "last_modified_date", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "drug_ndc_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "drug_rx_norm_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "drug_rx_norm_id_type", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "drug_reaction_snomed_ct_concept_id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "drug_severity_snomed_ct_concept_id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "allergen_group", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-source_id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-source_type", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "bf514d31-a14f-4bae-a443-e8bc06e40c7d", "name": "df_diagnoses_problems", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "diagnosis_coding_system", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": true, "options": [{"label": + "ICD-9", "value": "ICD-9", "refCdtName": null}, {"label": "ICD-10", "value": + "ICD-10", "refCdtName": null}, {"label": "SNOMED CT", "value": "SNOMED CT", + "refCdtName": null}]}}, {"name": "code", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "description", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "onset_date", + "type": "date", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "last_modified_by", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "last_modified_date", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "status", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": true, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": true, "options": [{"label": "Active", "value": + "Active", "refCdtName": null}, {"label": "Inactive", "value": "Inactive", + "refCdtName": null}, {"label": "Deleted", "value": "Deleted", "refCdtName": + null}, {"label": "Resolved", "value": "Resolved", "refCdtName": null}]}}, + {"name": "cdtf-updated_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-created_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-source_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-source_type", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-external_id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "f81ab3e4-246d-4b7f-9de7-5f147afda171", "name": + "df_medications", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "start_date", "type": "date", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "stop_date", "type": "date", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "medication", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": true}}, {"name": "last_modified_date", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "last_modified_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "strength", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "strength_unit", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "name", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "is_custom_medication", "type": + "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Yes", "value": "yes", "refCdtName": + null}, {"label": "No", "value": "no", "refCdtName": null}]}}, {"name": "drug_ndc_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "drug_rx_norm_id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "drug_rx_norm_id_type", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "drug_route", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "drug_form", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "dose", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "dose_unit", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "route", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "dose_timing", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "dose_other", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "duration", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "quantity", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "quantity_unit", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "refills", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "fill_date", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "stop_reason", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "primary_diagnosis_coding_system", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "primary_diagnosis_code", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "primary_diagnosis_description", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "secondary_diagnosis_coding_system", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "secondary_diagnosis_code", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "patient_notes", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "pharmacy_notes", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "office_comments", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "status", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": true, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": true, "options": [{"label": "Active", "value": + "b_active", "refCdtName": null}, {"label": "Inactive", "value": "c_inactive", + "refCdtName": null}, {"label": "Deleted", "value": "d_deleted", "refCdtName": + null}]}}, {"name": "secondary_diagnosis_description", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "directions_for_use", "type": "textarea", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "side_effects", + "type": "textarea", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "about", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-updated_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-created_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-source_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-source_type", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-external_id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "b98e6402-a3a9-4e63-8288-f90f913ca0ad", "name": + "df_refill_notification", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "creation_date", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "sender", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "title", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "ndc_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "brand_name", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "generic_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "form", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "duration", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "quantity", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "quantity_unit", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "refills", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "substitution_permitted", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "patient_notes", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "cb595330-a3e6-42f0-a17a-d033332a611f", + "name": "df_refill_notifications", "title": null, "label": null, "version": + 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "creation_date", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "sender", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "title", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "ndc_id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "brand_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "generic_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "form", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "duration", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "quantity", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "quantity_unit", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "refills", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "substitution_permitted", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "patient_notes", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "text", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-source_type", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "cdtf-source_id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "c56d03ec-81d8-4291-b87b-1a0d1225347a", "name": "family-medical-history", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "historical-disease", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "COPD", "value": "COPD", "refCdtName": null}, {"label": "Cancer", "value": + "Cancer", "refCdtName": null}, {"label": "Diabetes", "value": "Diabetes", + "refCdtName": null}, {"label": "High Blood Pressure", "value": "High Blood + Pressure", "refCdtName": null}, {"label": "Obesity", "value": "Obesity", "refCdtName": + null}], "multiple": true}}, {"name": "relationship-to-patient", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Parent", "value": "Parent", "refCdtName": + null}, {"label": "Grandparent", "value": "Grandparent", "refCdtName": null}, + {"label": "Sibling", "value": "Sibling", "refCdtName": null}, {"label": "Aunt/Uncle", + "value": "Aunt/Uncle", "refCdtName": null}], "multiple": true}}, {"name": + "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "1d1e5455-11a6-4880-b7ad-2eff37c14f1e", "name": "historical-medical-conditions", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "historical-disease", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "COPD", "value": "COPD", "refCdtName": null}, {"label": "Cancer", "value": + "Cancer", "refCdtName": null}, {"label": "Diabetes", "value": "Diabetes", + "refCdtName": null}, {"label": "High Blood Pressure", "value": "High Blood + Pressure", "refCdtName": null}, {"label": "Obesity", "value": "Obesity", "refCdtName": + null}], "multiple": true}}, {"name": "year-of-onset", "type": "integer", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"minValue": "1900", + "maxValue": "9999", "required": false}}, {"name": "id", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "921fca7e-1a1e-47ee-a811-dcec8c837548", + "name": "hospitalizations", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "treatment_type", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "IP", "value": "IP", "refCdtName": null}, {"label": + "OP", "value": "OP", "refCdtName": null}, {"label": "Obs", "value": "Obs", + "refCdtName": null}, {"label": "SNF", "value": "SNF", "refCdtName": null}, + {"label": "Rehab", "value": "Rehab", "refCdtName": null}]}}, {"name": "date_of_service_hospitalizations", + "type": "date", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "chief_complaint_or_diagnosis", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "db8c05dc-deea-4f2f-8e8e-a9e0bf6e0ae4", "name": + "insurance", "title": null, "label": null, "version": 74, "internal": false, + "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", + "fields": [{"name": "insured-name-first", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "insured-name-last", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "insured-primary-full", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "policy-number", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "groups-plan", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "insurance-phone", + "type": "phone", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "insurance-other", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "insured-by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "cdtf-plan-holder-first-name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "cdtf-plan-holder-last-name", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "cdtf-plan-holder-relationship", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": true}, + {"id": "2b1548b7-a72e-4fc4-9497-7c31aeccc52a", "name": "medications", "title": + null, "label": null, "version": 74, "internal": false, "readable": true, "updatable": + true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "medication_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "dose", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "route", "type": + "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "Oral", "value": "Oral", "refCdtName": + null}, {"label": "Nasal", "value": "Nasal", "refCdtName": null}, {"label": + "Topical", "value": "Topical", "refCdtName": null}, {"label": "IV", "value": + "IV", "refCdtName": null}, {"label": "Ocular", "value": "Ocular", "refCdtName": + null}, {"label": "Other", "value": "Other", "refCdtName": null}]}}, {"name": + "route_if_other", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "frequency", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}, {"id": "0334a7bb-14e9-47cd-a6bf-6ad6b4e384c2", "name": + "patient_contacts", "title": null, "label": null, "version": 74, "internal": + false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "COMMON", "fields": [{"name": "contat_type", "type": "select", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + false, "options": [{"label": "Spouse", "value": "Spouse", "refCdtName": null}, + {"label": "Parent", "value": "Parent", "refCdtName": null}, {"label": "Child", + "value": "Child", "refCdtName": null}, {"label": "Sibling", "value": "Sibling", + "refCdtName": null}, {"label": "Friend", "value": "Friend", "refCdtName": + null}, {"label": "Other", "value": "Other", "refCdtName": null}]}}, {"name": + "contact_first_and_last", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "contact_phone", + "type": "phone", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "contact_email", "type": "email", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, + {"id": "beec828a-977b-4fc3-a1c4-f63f8af3ccdc", "name": "preferred_contact_type", + "title": null, "label": null, "version": 74, "internal": false, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": + [{"name": "preferred_contact_type", "type": "select", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "Phone", "value": "Phone", "refCdtName": null}, {"label": "Email", "value": + "Email", "refCdtName": null}, {"label": "Text", "value": "Text", "refCdtName": + null}]}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": false}]' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:17 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '212762' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_documents_get_patient_id.yaml b/test/cassettes/test_document_summaries_get_patient_id.yaml similarity index 100% rename from test/cassettes/test_documents_get_patient_id.yaml rename to test/cassettes/test_document_summaries_get_patient_id.yaml diff --git a/test/cassettes/test_documents_subresource.yaml b/test/cassettes/test_document_summaries_subresource.yaml similarity index 100% rename from test/cassettes/test_documents_subresource.yaml rename to test/cassettes/test_document_summaries_subresource.yaml diff --git a/test/cassettes/test_document_type_formation_read.yaml b/test/cassettes/test_document_type_formation_read.yaml new file mode 100644 index 0000000..bceadf5 --- /dev/null +++ b/test/cassettes/test_document_type_formation_read.yaml @@ -0,0 +1,106 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/document-types/doc-type-others + response: + body: + string: '{"id": "fde8d6ff-0f2b-473e-9a97-bc8cdfac0622", "name": "doc-type-others", + "title": "Others", "label": "Others", "version": 74, "internal": true, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", + "fields": [{"name": "notes", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": true}' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:18 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '3606' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_formation_get.yaml b/test/cassettes/test_document_types_formation_read.yaml similarity index 51% rename from test/cassettes/test_formation_get.yaml rename to test/cassettes/test_document_types_formation_read.yaml index 04ed5e2..7c1636c 100644 --- a/test/cassettes/test_formation_get.yaml +++ b/test/cassettes/test_document_types_formation_read.yaml @@ -7,21 +7,21 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_08ba7c81-1f45-405a-a00f-9d936cf84ef9 + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 Connection: - keep-alive User-Agent: - - python-welkin/0.0.5 + - python-welkin/0.0.7 method: GET - uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/cdts?page=0 + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/document-types?page=0 response: body: - string: '[{"id": "2567b405-0ad7-4213-a7af-f031b7f332d2", "name": "cdt-appt-checkin", - "title": null, "label": null, "version": 15, "internal": false, "readable": - true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": - [{"name": "cdtf-how-you-doin", "type": "textarea", "formula": null, "dictionary": + string: '[{"id": "a9f04c40-1092-4727-8162-f58b73d397d1", "name": "doc-type-assessment", + "title": "Assessment", "label": "Assessment", "version": 74, "internal": true, + "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", + "fields": [{"name": "notes", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, @@ -66,377 +66,114 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}]' - headers: - Access-Control-Allow-Headers: - - authorization, content-type, xsrf-token, security-role - Access-Control-Allow-Methods: - - GET, POST, PUT, DELETE, PATCH, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - xsrf-token - Access-Control-Max-Age: - - '3600' - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Type: - - application/json - Date: - - Thu, 15 Dec 2022 00:04:48 GMT - Expires: - - '0' - Pragma: - - no-cache - Set-Cookie: - - AWSALB=Z+meSoRLfStVFcEdOVC/MevsbbA9tTtFwfqOXw3DVtDXTjPDQWe9bIzVJYLmMtYWUxjyWG/0mz09ug+Ka6TAJtGmUWUhZ7sqd5KF0UXpocuoXf7BRPunnNp3xCkW; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/ - - AWSALBCORS=Z+meSoRLfStVFcEdOVC/MevsbbA9tTtFwfqOXw3DVtDXTjPDQWe9bIzVJYLmMtYWUxjyWG/0mz09ug+Ka6TAJtGmUWUhZ7sqd5KF0UXpocuoXf7BRPunnNp3xCkW; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/; SameSite=None; Secure - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: '' -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Authorization: - - API_TOKEN_08ba7c81-1f45-405a-a00f-9d936cf84ef9 - Connection: - - keep-alive - Cookie: - - AWSALB=Z+meSoRLfStVFcEdOVC/MevsbbA9tTtFwfqOXw3DVtDXTjPDQWe9bIzVJYLmMtYWUxjyWG/0mz09ug+Ka6TAJtGmUWUhZ7sqd5KF0UXpocuoXf7BRPunnNp3xCkW; - AWSALBCORS=Z+meSoRLfStVFcEdOVC/MevsbbA9tTtFwfqOXw3DVtDXTjPDQWe9bIzVJYLmMtYWUxjyWG/0mz09ug+Ka6TAJtGmUWUhZ7sqd5KF0UXpocuoXf7BRPunnNp3xCkW - User-Agent: - - python-welkin/0.0.5 - method: GET - uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/assessments?page=0 - response: - body: - string: '[{"id": "08e62142-8a7e-4596-8a4b-39c8a8ca73a0", "title": "Appointment - Checkin", "name": "asm-appointment-checkin", "version": 15, "sections": [{"title": - "Section 1", "name": "section-1", "order": 0, "fields": [{"label": "How you - doin", "name": "", "refCdtName": "cdt-appt-checkin", "refCdtFieldName": "cdtf-how-you-doin", - "order": 0, "viewType": "question", "meta": {"type": "textarea", "required": - false}, "prePopulatedValue": null, "attachments": null}]}], "scoring": {"formula": - "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": - {"elements": [], "events": []}, "displayType": "SECTIONS", "autoCompleted": - false, "_containsPHI": false}]' - headers: - Access-Control-Allow-Headers: - - authorization, content-type, xsrf-token, security-role - Access-Control-Allow-Methods: - - GET, POST, PUT, DELETE, PATCH, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - xsrf-token - Access-Control-Max-Age: - - '3600' - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Type: - - application/json - Date: - - Thu, 15 Dec 2022 00:04:48 GMT - Expires: - - '0' - Pragma: - - no-cache - Set-Cookie: - - AWSALB=iHHDkjT2UMNdypLQbDwLC8zVI0P5KSb2ovO+w0WRDQDdw+n2iQxitD87vUniKCDGkBKksVbwpwJJ6xgk/EfyxC1v4CLY4ll7fu08/EspECIKa87sFQAe6P0PR2Vr; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/ - - AWSALBCORS=iHHDkjT2UMNdypLQbDwLC8zVI0P5KSb2ovO+w0WRDQDdw+n2iQxitD87vUniKCDGkBKksVbwpwJJ6xgk/EfyxC1v4CLY4ll7fu08/EspECIKa87sFQAe6P0PR2Vr; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/; SameSite=None; Secure - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: '' -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Authorization: - - API_TOKEN_08ba7c81-1f45-405a-a00f-9d936cf84ef9 - Connection: - - keep-alive - Cookie: - - AWSALB=iHHDkjT2UMNdypLQbDwLC8zVI0P5KSb2ovO+w0WRDQDdw+n2iQxitD87vUniKCDGkBKksVbwpwJJ6xgk/EfyxC1v4CLY4ll7fu08/EspECIKa87sFQAe6P0PR2Vr; - AWSALBCORS=iHHDkjT2UMNdypLQbDwLC8zVI0P5KSb2ovO+w0WRDQDdw+n2iQxitD87vUniKCDGkBKksVbwpwJJ6xgk/EfyxC1v4CLY4ll7fu08/EspECIKa87sFQAe6P0PR2Vr - User-Agent: - - python-welkin/0.0.5 - method: GET - uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounters?page=0 - response: - body: - string: '[{"id": "73bc319a-7ce3-48cc-8604-f7a97d2b8d15", "name": "etmp-initial-consultation", - "title": "Initial Consultation", "encounterDescription": "", "encounterInstruction": - "", "encounterColor": "#e67b2d", "type": "etmp-initial-consultation", "deliveryMethod": - "VIDEO", "defaultDuration": 30, "assessmentNames": ["asm-appointment-checkin"]}]' - headers: - Access-Control-Allow-Headers: - - authorization, content-type, xsrf-token, security-role - Access-Control-Allow-Methods: - - GET, POST, PUT, DELETE, PATCH, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - xsrf-token - Access-Control-Max-Age: - - '3600' - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Type: - - application/json - Date: - - Thu, 15 Dec 2022 00:04:48 GMT - Expires: - - '0' - Pragma: - - no-cache - Set-Cookie: - - AWSALB=apnF1A7xwM5UK10H4yK/TuFrv44XqeYvvmxIZ9sfGJSJXq/1azprcSXaEf7tT5BmYg1z15MFTq4uJCAprTAH1bNP2emSAe2fL0DtoZ+b4qZKZp+mSsaBcOFqgQv2; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/ - - AWSALBCORS=apnF1A7xwM5UK10H4yK/TuFrv44XqeYvvmxIZ9sfGJSJXq/1azprcSXaEf7tT5BmYg1z15MFTq4uJCAprTAH1bNP2emSAe2fL0DtoZ+b4qZKZp+mSsaBcOFqgQv2; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/; SameSite=None; Secure - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: '' -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Authorization: - - API_TOKEN_08ba7c81-1f45-405a-a00f-9d936cf84ef9 - Connection: - - keep-alive - Cookie: - - AWSALB=apnF1A7xwM5UK10H4yK/TuFrv44XqeYvvmxIZ9sfGJSJXq/1azprcSXaEf7tT5BmYg1z15MFTq4uJCAprTAH1bNP2emSAe2fL0DtoZ+b4qZKZp+mSsaBcOFqgQv2; - AWSALBCORS=apnF1A7xwM5UK10H4yK/TuFrv44XqeYvvmxIZ9sfGJSJXq/1azprcSXaEf7tT5BmYg1z15MFTq4uJCAprTAH1bNP2emSAe2fL0DtoZ+b4qZKZp+mSsaBcOFqgQv2 - User-Agent: - - python-welkin/0.0.5 - method: GET - uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounter-disposition?page=0 - response: - body: - string: '{"id": "17b01f54-14bd-424f-9dd0-21ccd9cd652f", "name": "__encounter_disposition__", - "title": null, "label": null, "version": 15, "internal": true, "readable": - true, "updatable": true, "type": "MULTI_RECORD", "relation": "ENCOUNTER_DISPOSITION", - "fields": [{"name": "notes", "type": "text", "formula": null, "dictionary": - null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + {"required": false}}], "_containsPHI": true}, {"id": "35363baa-2a26-4b16-ad84-26d4f64e76e9", + "name": "doc-type-docusign", "title": "Docusign", "label": "Docusign", "version": + 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {}}, {"name": "uicedf-treatment", "type": - "textarea", "formula": null, "dictionary": null, "profileDataType": null, + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "uicedf-next-steps", "type": "textarea", "formula": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "fde8d6ff-0f2b-473e-9a97-bc8cdfac0622", "name": + "doc-type-others", "title": "Others", "label": "Others", "version": 74, "internal": + true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": + "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "uicedf-review", "type": "textarea", "formula": null, "dictionary": - null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": - "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": - false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": - null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "source_id", "type": "text", "formula": null, - "dictionary": null, "profileDataType": null, "editable": false, "searchable": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}' - headers: - Access-Control-Allow-Headers: - - authorization, content-type, xsrf-token, security-role - Access-Control-Allow-Methods: - - GET, POST, PUT, DELETE, PATCH, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - xsrf-token - Access-Control-Max-Age: - - '3600' - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Type: - - application/json - Date: - - Thu, 15 Dec 2022 00:04:48 GMT - Expires: - - '0' - Pragma: - - no-cache - Set-Cookie: - - AWSALB=xNedYBaP9r2C6+FRkrC4JNe4QVcvO4RBn1GT2nEMrTSe9gzLPpzZ+W3tCxYawNkw67i8cUvjqp180W1T86IWGp4SHA498WzoQAKI4OVVhuMkGW8DuOWOKm+oKPQQ; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/ - - AWSALBCORS=xNedYBaP9r2C6+FRkrC4JNe4QVcvO4RBn1GT2nEMrTSe9gzLPpzZ+W3tCxYawNkw67i8cUvjqp180W1T86IWGp4SHA498WzoQAKI4OVVhuMkGW8DuOWOKm+oKPQQ; - Expires=Thu, 22 Dec 2022 00:04:48 GMT; Path=/; SameSite=None; Secure - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: '' -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Authorization: - - API_TOKEN_08ba7c81-1f45-405a-a00f-9d936cf84ef9 - Connection: - - keep-alive - Cookie: - - AWSALB=xNedYBaP9r2C6+FRkrC4JNe4QVcvO4RBn1GT2nEMrTSe9gzLPpzZ+W3tCxYawNkw67i8cUvjqp180W1T86IWGp4SHA498WzoQAKI4OVVhuMkGW8DuOWOKm+oKPQQ; - AWSALBCORS=xNedYBaP9r2C6+FRkrC4JNe4QVcvO4RBn1GT2nEMrTSe9gzLPpzZ+W3tCxYawNkw67i8cUvjqp180W1T86IWGp4SHA498WzoQAKI4OVVhuMkGW8DuOWOKm+oKPQQ - User-Agent: - - python-welkin/0.0.5 - method: GET - uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/goal-templates?page=0 - response: - body: - string: '[{"name": "gtmp-a-new-goal", "goalName": "A New Goal", "type": "A Test - Type", "priority": "MEDIUM", "taskTemplates": []}, {"name": "gtmp-test-goal-template", - "goalName": "Test Goal Template", "type": "testtype", "priority": "LOW", "taskTemplates": - [{"name": "ttmp-test-task", "subjectConfig": {"type": "POINT_OF_CONTACT"}}]}]' - headers: - Access-Control-Allow-Headers: - - authorization, content-type, xsrf-token, security-role - Access-Control-Allow-Methods: - - GET, POST, PUT, DELETE, PATCH, OPTIONS - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - xsrf-token - Access-Control-Max-Age: - - '3600' - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Type: - - application/json - Date: - - Thu, 15 Dec 2022 00:04:49 GMT - Expires: - - '0' - Pragma: - - no-cache - Set-Cookie: - - AWSALB=q2hydZB2K35uIAdkjda3cdx45ESB5HRqtMWkv/L7ZxUFugFpMdUBiqUJRoB9cBoLdCKqGWFJskCbODRW4bz4lzPv1OntizufG8GhEV3DiZmYHRGvCYtRoJnY3/Nx; - Expires=Thu, 22 Dec 2022 00:04:49 GMT; Path=/ - - AWSALBCORS=q2hydZB2K35uIAdkjda3cdx45ESB5HRqtMWkv/L7ZxUFugFpMdUBiqUJRoB9cBoLdCKqGWFJskCbODRW4bz4lzPv1OntizufG8GhEV3DiZmYHRGvCYtRoJnY3/Nx; - Expires=Thu, 22 Dec 2022 00:04:49 GMT; Path=/; SameSite=None; Secure - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: '' -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Authorization: - - API_TOKEN_08ba7c81-1f45-405a-a00f-9d936cf84ef9 - Connection: - - keep-alive - Cookie: - - AWSALB=q2hydZB2K35uIAdkjda3cdx45ESB5HRqtMWkv/L7ZxUFugFpMdUBiqUJRoB9cBoLdCKqGWFJskCbODRW4bz4lzPv1OntizufG8GhEV3DiZmYHRGvCYtRoJnY3/Nx; - AWSALBCORS=q2hydZB2K35uIAdkjda3cdx45ESB5HRqtMWkv/L7ZxUFugFpMdUBiqUJRoB9cBoLdCKqGWFJskCbODRW4bz4lzPv1OntizufG8GhEV3DiZmYHRGvCYtRoJnY3/Nx - User-Agent: - - python-welkin/0.0.5 - method: GET - uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/document-types?page=0 - response: - body: - string: '[{"id": "f2b11194-01b1-4f3f-99f5-7013c94881b5", "name": "doc-type-assessment", - "title": "Assessment", "label": "Assessment", "version": 15, "internal": true, + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": true}, + {"id": "e7013017-3247-414f-b5d6-b2fc888780f2", "name": "dt-driver-s-license", + "title": "Driver''s License", "label": null, "version": 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", - "fields": [{"name": "notes", "type": "text", "formula": null, "dictionary": + "fields": [{"name": "dtf-notes", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, @@ -481,12 +218,12 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "2d4052bc-1091-49f4-8033-b52cfee8136c", - "name": "doc-type-docusign", "title": "Docusign", "label": "Docusign", "version": - 15, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", - "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", + {"required": false}}], "_containsPHI": true}, {"id": "a6ec6e3a-1a46-494b-bbf2-d85f8899279b", + "name": "dt-insurance-card", "title": "Insurance Card", "label": null, "version": + 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-notes", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": - true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": @@ -532,57 +269,219 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "6c9eb25a-dc6d-4b7d-b8f5-9f10eeef351c", "name": - "doc-type-others", "title": "Others", "label": "Others", "version": 15, "internal": - true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": - "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", "formula": null, - "dictionary": null, "profileDataType": null, "editable": true, "searchable": + "_containsPHI": true}, {"id": "c61e0c04-74c2-4386-9b68-ddc41e0be4b1", "name": + "dt-intake-images", "title": "Intake Images", "label": null, "version": 74, + "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-notes", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "548fbe23-17c1-4e05-8bd9-75513d362fd1", "name": + "dt-patient-images", "title": "Patient Images", "label": null, "version": + 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-pi-notes", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": - null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": - false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "86e506fd-ca91-4c55-8e7b-3d3cfe8c81fc", "name": + "dt-prior-authorization", "title": "Prior Authorization", "label": null, "version": + 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-pa-notes", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "35be4968-e520-48e2-9941-f0ea06ed2c0b", "name": + "medical-records", "title": "Medical Records", "label": null, "version": 74, + "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "date", "type": "date", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "visit-type", "type": "select", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": true, "bulkEdit": + false, "phi": true, "disable": false, "injectedSource": false, "displayType": + "SELECT", "valueType": "STRING", "meta": {"required": false, "options": [{"label": + "ER", "value": "ER", "refCdtName": null}, {"label": "Urgent Care", "value": + "Urgent Care", "refCdtName": null}, {"label": "PCP", "value": "PCP", "refCdtName": + null}, {"label": "Dermatologist", "value": "Dermatologist", "refCdtName": + null}, {"label": "Other", "value": "Other", "refCdtName": null}], "multiple": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "external_id", "type": "text", "formula": null, - "dictionary": null, "profileDataType": null, "editable": true, "searchable": + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}]' + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}]' headers: Access-Control-Allow-Headers: - authorization, content-type, xsrf-token, security-role @@ -601,23 +500,22 @@ interactions: Content-Type: - application/json Date: - - Thu, 15 Dec 2022 00:04:49 GMT + - Thu, 31 Aug 2023 23:44:18 GMT Expires: - '0' Pragma: - no-cache - Set-Cookie: - - AWSALB=G3sIH/0aVLkGYJ62JbxCICjyV08tCJ74VAXWwi4AxNF+vJkE2OnAGMtkLguv3dvbi/EGZEySkRcl/kD+JkieV/av0uuY2HZIzxtzw6HXjKK0nZukF9L7l/aVqE5f; - Expires=Thu, 22 Dec 2022 00:04:49 GMT; Path=/ - - AWSALBCORS=G3sIH/0aVLkGYJ62JbxCICjyV08tCJ74VAXWwi4AxNF+vJkE2OnAGMtkLguv3dvbi/EGZEySkRcl/kD+JkieV/av0uuY2HZIzxtzw6HXjKK0nZukF9L7l/aVqE5f; - Expires=Thu, 22 Dec 2022 00:04:49 GMT; Path=/; SameSite=None; Secure + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains Transfer-Encoding: - chunked X-Content-Type-Options: - nosniff X-XSS-Protection: - 1; mode=block + content-length: + - '33146' status: code: 200 - message: '' + message: OK version: 1 diff --git a/test/cassettes/test_encounter_disposition_formation_read.yaml b/test/cassettes/test_encounter_disposition_formation_read.yaml new file mode 100644 index 0000000..687a556 --- /dev/null +++ b/test/cassettes/test_encounter_disposition_formation_read.yaml @@ -0,0 +1,145 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounter-disposition + response: + body: + string: '{"id": "3ea2d3da-0d25-427e-a379-8d4d13b2d244", "name": "__encounter_disposition__", + "title": null, "label": null, "version": 74, "internal": true, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "ENCOUNTER_DISPOSITION", + "fields": [{"name": "disposition-code", "type": "select", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": "SELECT", "valueType": "STRING", "meta": {"required": + true, "options": [{"label": "Completed", "value": "Completed", "refCdtName": + null}, {"label": "Rescheduled", "value": "Rescheduled", "refCdtName": null}, + {"label": "No Show", "value": "No Show", "refCdtName": null}, {"label": "Referred + Out", "value": "Referred Out", "refCdtName": null}, {"label": "Not Eligible", + "value": "Not Eligible", "refCdtName": null}]}}, {"name": "note", "type": + "textarea", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "uicedf-follow-up-scheduled", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": true, "options": [{"label": "Yes", "value": "Yes", "refCdtName": + null}, {"label": "No", "value": "No", "refCdtName": null}]}}, {"name": "uicedf-followup-timeframe", + "type": "select", "formula": null, "dictionary": null, "profileDataType": + null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": "SELECT", "valueType": + "STRING", "meta": {"required": true, "options": [{"label": "1 week", "value": + "1 week", "refCdtName": null}, {"label": "2 weeks", "value": "2 weeks", "refCdtName": + null}, {"label": "3 weeks", "value": "3 weeks", "refCdtName": null}, {"label": + "4 weeks", "value": "4 weeks", "refCdtName": null}, {"label": "6 weeks", "value": + "6 weeks", "refCdtName": null}, {"label": "2 months", "value": "2 months", + "refCdtName": null}, {"label": "3 months", "value": "3 months", "refCdtName": + null}, {"label": "6 months", "value": "6 months", "refCdtName": null}, {"label": + "1 year", "value": "1 year", "refCdtName": null}, {"label": "None", "value": + "None", "refCdtName": null}]}}, {"name": "uicedf-followup-type", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": true, "options": [{"label": "Schedule Visit", "value": "Schedule + Visit", "refCdtName": null}, {"label": "Chat - Member Support", "value": "Chat + - Member Support", "refCdtName": null}, {"label": "Chat - Dermatologist", + "value": "Chat - Dermatologist", "refCdtName": null}, {"label": "None", "value": + "None", "refCdtName": null}]}}, {"name": "uicedf-prior-auth-probable", "type": + "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": true, "options": [{"label": "Yes", "value": "Yes", "refCdtName": + null}, {"label": "No", "value": "No", "refCdtName": null}]}}, {"name": "id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "created_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "external_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:19 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '6416' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_encounter_formation_read.yaml b/test/cassettes/test_encounter_formation_read.yaml new file mode 100644 index 0000000..cb5c3d5 --- /dev/null +++ b/test/cassettes/test_encounter_formation_read.yaml @@ -0,0 +1,63 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounters/etmp-coaching-introduction + response: + body: + string: '{"id": "18f625e5-1520-40c3-925f-40e533200e87", "name": "etmp-coaching-introduction", + "title": "Coaching Introduction", "encounterDescription": "", "encounterInstruction": + "
    \n
  1. Review the patient''s summary, encounters, and past assessments + as needed.
  2. \n
  3. Change Encounter status to In Progress when session begins.
  4. \n
  5. Add + notes for the patient
  6. \n
  7. Add Nutrition and Lifestyle treatments for + the patient
  8. \n
  9. Close the Encounter
  10. \n
\n", "encounterColor": + "#e67b2d", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": + 15, "assessmentNames": ["asm-coaching-notes", "asm-treatment-recommendations"]}' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:19 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '624' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_encounter_formations_read.yaml b/test/cassettes/test_encounter_formations_read.yaml new file mode 100644 index 0000000..e9a01f3 --- /dev/null +++ b/test/cassettes/test_encounter_formations_read.yaml @@ -0,0 +1,85 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounters?page=0 + response: + body: + string: '[{"id": "18f625e5-1520-40c3-925f-40e533200e87", "name": "etmp-coaching-introduction", + "title": "Coaching Introduction", "encounterDescription": "", "encounterInstruction": + "
    \n
  1. Review the patient''s summary, encounters, and past assessments + as needed.
  2. \n
  3. Change Encounter status to In Progress when session begins.
  4. \n
  5. Add + notes for the patient
  6. \n
  7. Add Nutrition and Lifestyle treatments for + the patient
  8. \n
  9. Close the Encounter
  10. \n
\n", "encounterColor": + "#e67b2d", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": + 15, "assessmentNames": ["asm-coaching-notes", "asm-treatment-recommendations"]}, + {"id": "b734cb0f-99c0-463c-bece-7a6453b50f37", "name": "etmp-coaching-notes", + "title": "Coaching Session", "encounterDescription": "", "encounterInstruction": + "
    \n
  1. 1. Review the patient''s summary, encounters, and past assessments + as needed.
  2. \n
  3. Change Encounter status to In Progress when session begins.
  4. \n
  5. Add + notes for the patient
  6. \n
  7. Add Nutrition and Lifestyle treatments for + the patient
  8. \n
  9. Close the Encounter
  10. \n
\n", "encounterColor": + "#e67b2d", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": + 15, "assessmentNames": ["asm-coaching-notes", "asm-treatment-recommendations"]}, + {"id": "53fb1f46-dc65-4100-bf26-4238b81101d5", "name": "etmp-dermatologist-consult", + "title": "Dermatologist Consult", "encounterDescription": "", "encounterInstruction": + "
    \n
  1. Review Patient Summary and Prescriptions
  2. \n
  3. Complete Zoom + call
  4. \n
  5. Record notes
  6. \n
  7. Select treatments for patient
  8. \n
  9. Record + prescriptions in Dr. First
  10. \n
  11. Close encounter
  12. \n
\n", "encounterColor": + "#00a7be", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": + 15, "assessmentNames": ["asm-provider-notes", "asm-treatment-recommendations"]}, + {"id": "77148455-e74e-4df8-9ea8-242545147ac4", "name": "new-patient-call", + "title": "New Member Visit", "encounterDescription": "", "encounterInstruction": + "
    \n
  1. Review Patient Summary and Prescriptions
  2. \n
  3. Complete Zoom + call
  4. \n
  5. Record notes
  6. \n
  7. Select treatments for patient
  8. \n
  9. Record + prescriptions in Dr. First
  10. \n
  11. Close encounter
  12. \n
\n", "encounterColor": + "#00a7be", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": + 15, "assessmentNames": ["asm-treatment-recommendations", "asm-coaching-notes"]}]' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:18 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '2333' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_goal_formation_read.yaml b/test/cassettes/test_goal_formation_read.yaml new file mode 100644 index 0000000..30c9933 --- /dev/null +++ b/test/cassettes/test_goal_formation_read.yaml @@ -0,0 +1,58 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/goal-templates/eat-fruit + response: + body: + string: '{"name": "eat-fruit", "goalName": "Eat Fruit", "type": "dietary", "priority": + "LOW", "taskTemplates": [{"name": "check-in-on-goal-progress", "subjectConfig": + {"type": "ROLE", "roleName": "health-coach"}}]}' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:20 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '190' + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_goal_formations_read.yaml b/test/cassettes/test_goal_formations_read.yaml new file mode 100644 index 0000000..012aa9f --- /dev/null +++ b/test/cassettes/test_goal_formations_read.yaml @@ -0,0 +1,60 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + Connection: + - keep-alive + User-Agent: + - python-welkin/0.0.7 + method: GET + uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/goal-templates?page=0 + response: + body: + string: '[{"name": "eat-fruit", "goalName": "Eat Fruit", "type": "dietary", + "priority": "LOW", "taskTemplates": [{"name": "check-in-on-goal-progress", + "subjectConfig": {"type": "ROLE", "roleName": "health-coach"}}]}, {"name": + "pushups", "goalName": "Pushups", "type": "exercise", "priority": "LOW", "taskTemplates": + [{"name": "check-in-on-goal-progress", "subjectConfig": {"type": "POINT_OF_CONTACT"}}]}]' + headers: + Access-Control-Allow-Headers: + - authorization, content-type, xsrf-token, security-role + Access-Control-Allow-Methods: + - GET, POST, PUT, DELETE, PATCH, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - xsrf-token + Access-Control-Max-Age: + - '3600' + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Type: + - application/json + Date: + - Thu, 31 Aug 2023 23:44:20 GMT + Expires: + - '0' + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 ; includeSubDomains + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + X-XSS-Protection: + - 1; mode=block + content-length: + - '366' + status: + code: 200 + message: OK +version: 1 diff --git a/test/conftest.py b/test/conftest.py index 39ab22d..4678078 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -48,6 +48,7 @@ def vcr(vcr): vcr.filter_post_data_parameters = POST_DATA_BLACKLIST vcr.before_record_request = scrub_request(CLIENT_INIT) vcr.before_record_response = scrub_response(RESPONSE_BLACKLIST) + vcr.decode_compressed_response = True return vcr diff --git a/test/test_document.py b/test/test_document.py index cc47782..1e8b7d7 100644 --- a/test/test_document.py +++ b/test/test_document.py @@ -8,13 +8,11 @@ DocumentSummary, DocumentSummaryFile, DocumentSummaryFiles, - DocumentType, - DocumentTypes, ) @pytest.mark.vcr -def test_documents_get_patient_id(client, vcr_cassette): +def test_document_summaries_get_patient_id(client, vcr_cassette): documents = client.DocumentSummaries().get( patient_id="283f50d3-0840-426f-b07b-bd8e4ab76401" ) @@ -25,7 +23,7 @@ def test_documents_get_patient_id(client, vcr_cassette): @pytest.mark.vcr -def test_documents_subresource(client, vcr_cassette): +def test_document_summaries_subresource(client, vcr_cassette): documents = ( client.Patient(id="283f50d3-0840-426f-b07b-bd8e4ab76401") .DocumentSummaries() @@ -80,6 +78,9 @@ def test_document_summary_create(client, vcr_cassette): @pytest.mark.vcr +@pytest.mark.skip( + reason="the bytes upload hits this issue in vcr: https://github.com/kevin1024/vcrpy/issues/660 but this test shows the correct implementation" +) def test_document_summary_files_create(client, vcr_cassette): with open("test/walrus_uJGKbRm.jpeg", "rb") as f: diff --git a/test/test_encounters.py b/test/test_encounters.py index c6e7707..729e0cc 100644 --- a/test/test_encounters.py +++ b/test/test_encounters.py @@ -4,7 +4,7 @@ from welkin.exceptions import WelkinHTTPError from welkin.models.assessment import Assessment, Assessments -from welkin.models.encounter import Disposition, Encounter, Encounters +from welkin.models.encounter import Encounter, EncounterDisposition, Encounters from welkin.models.user import User UTC = timezone.utc @@ -254,7 +254,7 @@ def test_encounter_disposition_get_nested(client, vcr_cassette): ) disposition = encounter.disposition - assert isinstance(disposition, Disposition) + assert isinstance(disposition, EncounterDisposition) assert hasattr(disposition, "id") assert len(vcr_cassette) == 1 @@ -263,20 +263,20 @@ def test_encounter_disposition_get_nested(client, vcr_cassette): def test_encounter_disposition_get(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") encounter = patient.Encounter(id="d6f4b66e-1be6-403a-ae47-1bbcee264c5e") - disposition = encounter.Disposition().get() + disposition = encounter.EncounterDisposition().get() - assert isinstance(disposition, Disposition) + assert isinstance(disposition, EncounterDisposition) assert disposition.id == "8cd87974-b1cb-4a6f-8873-71d5d188c4aa" assert len(vcr_cassette) == 1 @pytest.mark.vcr def test_encounter_disposition_get_patient_id_encounter_id(client, vcr_cassette): - disposition = client.Disposition().get( + disposition = client.EncounterDisposition().get( patient_id="173a8adf-92e8-4832-8900-027c71b0d768", encounter_id="d6f4b66e-1be6-403a-ae47-1bbcee264c5e", ) - assert isinstance(disposition, Disposition) + assert isinstance(disposition, EncounterDisposition) assert disposition.id == "8cd87974-b1cb-4a6f-8873-71d5d188c4aa" assert len(vcr_cassette) == 1 @@ -285,7 +285,9 @@ def test_encounter_disposition_get_patient_id_encounter_id(client, vcr_cassette) def test_encounter_disposition_update(client, vcr_cassette): patient = client.Patient(id="173a8adf-92e8-4832-8900-027c71b0d768") encounter = patient.Encounter(id="d6f4b66e-1be6-403a-ae47-1bbcee264c5e") - disposition = encounter.Disposition(id="8cd87974-b1cb-4a6f-8873-71d5d188c4aa").get() + disposition = encounter.EncounterDisposition( + id="8cd87974-b1cb-4a6f-8873-71d5d188c4aa" + ).get() review = disposition.jsonBody["uicedf-review"] diff --git a/test/test_formations.py b/test/test_formations.py index c3e25a9..e9c2879 100644 --- a/test/test_formations.py +++ b/test/test_formations.py @@ -1,15 +1,127 @@ import pytest -from welkin.models.base import Resource -from welkin.models.formation import FormationDataType, Formations +from welkin.models import ( + AssessmentFormation, + AssessmentFormations, + CDTFormation, + CDTFormations, + DocumentTypeFormation, + DocumentTypeFormations, + EncounterDispositionFormation, + EncounterFormation, + EncounterFormations, + GoalFormation, + GoalFormations, +) @pytest.mark.vcr -def test_formation_get(client, vcr_cassette): - for data_type in FormationDataType: - formation_info = client.Formations().get(data_type.name) - assert isinstance(formation_info, Formations) - if len(formation_info) > 0: - assert isinstance(formation_info[0], Resource) +def test_assessment_formations_read(client, vcr_cassette): + assessment_formations = client.AssessmentFormations().get() - assert len(vcr_cassette) == len(FormationDataType) + assert isinstance(assessment_formations, AssessmentFormations) + assert isinstance(assessment_formations[0], AssessmentFormation) + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_assessment_formation_read(client, vcr_cassette): + assessment_template = client.AssessmentFormation(name="asm-coaching-notes").get() + + assert isinstance(assessment_template, AssessmentFormation) + assert assessment_template.name == "asm-coaching-notes" + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_cdt_formations_read(client, vcr_cassette): + cdt_formations = client.CDTFormations().get() + + assert isinstance(cdt_formations, CDTFormations) + assert isinstance(cdt_formations[0], CDTFormation) + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_cdt_formation_read(client, vcr_cassette): + cdt_template = client.CDTFormation(name="allergies").get() + + assert isinstance(cdt_template, CDTFormation) + assert cdt_template.name == "allergies" + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_document_type_formation_read(client, vcr_cassette): + document_type = client.DocumentTypeFormation(name="doc-type-others").get() + + assert isinstance(document_type, DocumentTypeFormation) + assert document_type.name == "doc-type-others" + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_document_types_formation_read(client, vcr_cassette): + document_types = client.DocumentTypeFormations().get() + + assert isinstance(document_types, DocumentTypeFormations) + assert isinstance(document_types[0], DocumentTypeFormation) + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_encounter_formations_read(client, vcr_cassette): + encounter_formations = client.EncounterFormations().get() + + assert isinstance(encounter_formations, EncounterFormations) + assert isinstance(encounter_formations[0], EncounterFormation) + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_encounter_formation_read(client, vcr_cassette): + encounter_template = client.EncounterFormation( + name="etmp-coaching-introduction" + ).get() + + assert isinstance(encounter_template, EncounterFormation) + assert encounter_template.name == "etmp-coaching-introduction" + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_encounter_disposition_formation_read(client, vcr_cassette): + encounter_disposition_formation = client.EncounterDispositionFormation().get() + + assert isinstance(encounter_disposition_formation, EncounterDispositionFormation) + assert encounter_disposition_formation.name == "__encounter_disposition__" + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_goal_formations_read(client, vcr_cassette): + goal_templates = client.GoalFormations().get() + + assert isinstance(goal_templates, GoalFormations) + assert isinstance(goal_templates[0], GoalFormation) + + assert len(vcr_cassette) == 1 + + +@pytest.mark.vcr +def test_goal_formation_read(client, vcr_cassette): + goal_template = client.GoalFormation(name="eat-fruit").get() + + assert isinstance(goal_template, GoalFormation) + assert goal_template.name == "eat-fruit" + + assert len(vcr_cassette) == 1 diff --git a/welkin/client.py b/welkin/client.py index fa77f59..e017bce 100644 --- a/welkin/client.py +++ b/welkin/client.py @@ -130,6 +130,8 @@ def __init__( def __build_resources(self) -> None: """Add each resource with a reference to this instance.""" self.Assessment = models.Assessment + self.AssessmentFormation = models.AssessmentFormation + self.AssessmentFormations = models.AssessmentFormations self.AssessmentRecord = models.AssessmentRecord self.AssessmentRecordAnswers = models.AssessmentRecordAnswers self.AssessmentRecords = models.AssessmentRecords @@ -139,19 +141,25 @@ def __build_resources(self) -> None: self.CarePlan = models.CarePlan self.CarePlanOverview = models.CarePlanOverview self.CDT = models.CDT + self.CDTFormation = models.CDTFormation + self.CDTFormations = models.CDTFormations self.CDTs = models.CDTs self.Chat = models.Chat self.Chats = models.Chats - self.Disposition = models.Disposition self.DocumentSummaries = models.DocumentSummaries self.DocumentSummary = models.DocumentSummary self.DocumentSummaryFile = models.DocumentSummaryFile self.DocumentSummaryFiles = models.DocumentSummaryFiles - self.DocumentType = models.DocumentType - self.DocumentTypes = models.DocumentTypes + self.DocumentTypeFormation = models.DocumentTypeFormation + self.DocumentTypeFormations = models.DocumentTypeFormations self.Encounter = models.Encounter + self.EncounterDisposition = models.EncounterDisposition + self.EncounterDispositionFormation = models.EncounterDispositionFormation + self.EncounterFormation = models.EncounterFormation + self.EncounterFormations = models.EncounterFormations self.Encounters = models.Encounters - self.Formations = models.Formations + self.GoalFormation = models.GoalFormation + self.GoalFormations = models.GoalFormations self.Patient = models.Patient self.Patients = models.Patients self.Schedules = models.Schedules @@ -230,6 +238,9 @@ def request( raise + if "formations" in path: + return json + if isinstance(json, list): json = { "content": json, diff --git a/welkin/models/__init__.py b/welkin/models/__init__.py index 5614a46..a0a5e7c 100644 --- a/welkin/models/__init__.py +++ b/welkin/models/__init__.py @@ -14,16 +14,28 @@ DocumentSummary, DocumentSummaryFile, DocumentSummaryFiles, - DocumentType, - DocumentTypes, ) -from welkin.models.encounter import Disposition, Encounter, Encounters -from welkin.models.formation import Formations +from welkin.models.encounter import Encounter, EncounterDisposition, Encounters +from welkin.models.formation import ( + AssessmentFormation, + AssessmentFormations, + CDTFormation, + CDTFormations, + DocumentTypeFormation, + DocumentTypeFormations, + EncounterDispositionFormation, + EncounterFormation, + EncounterFormations, + GoalFormation, + GoalFormations, +) from welkin.models.patient import Patient, Patients from welkin.models.user import User, Users __all__ = [ "Assessment", + "AssessmentFormation", + "AssessmentFormations", "AssessmentRecord", "AssessmentRecordAnswers", "AssessmentRecords", @@ -33,24 +45,30 @@ "CarePlan", "CarePlanOverview", "CDT", + "CDTFormation", + "CDTFormations", "CDTs", "Chat", "Chats", - "SearchChats", - "Disposition", - "Encounter", - "Encounters", "DocumentSummaries", "DocumentSummary", "DocumentSummaryFile", "DocumentSummaryFiles", - "DocumentType", - "DocumentTypes", + "DocumentTypeFormation", + "DocumentTypeFormations", + "Encounter", + "EncounterDisposition", + "EncounterDispositionFormation", + "EncounterFormation", + "EncounterFormations", + "Encounters", + "GoalFormation", + "GoalFormations", "Patient", "Patients", "Schedules", + "SearchChats", "User", "Users", - "Formations", "WorkHours", ] diff --git a/welkin/models/document.py b/welkin/models/document.py index 8b2f11f..11a1d74 100644 --- a/welkin/models/document.py +++ b/welkin/models/document.py @@ -5,26 +5,6 @@ from welkin.pagination import PageableIterator -class DocumentType(Resource): - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/document-types/{self.name}", - *args, - **kwargs, - ) - - -class DocumentTypes(Collection): - resource = DocumentType - - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/document-types", - *args, - **kwargs, - ) - - class DocumentSummaryFile(Resource): def get(self, patient_id: str = None, document_summary_id: str = None) -> BytesIO: if not patient_id: diff --git a/welkin/models/encounter.py b/welkin/models/encounter.py index 37a2c08..04ebbb3 100644 --- a/welkin/models/encounter.py +++ b/welkin/models/encounter.py @@ -6,7 +6,7 @@ from welkin.pagination import MetaInfoIterator -class Disposition(Resource, EncounterSubResource): +class EncounterDisposition(Resource, EncounterSubResource): def get(self, patient_id: str = None, encounter_id: str = None): patient_id, encounter_id = self.get_patient_encounter_id( patient_id, encounter_id @@ -33,11 +33,11 @@ class EncounterStatus(Enum): class Encounter(Resource): - subresources = [Assessment, Assessments, Disposition] + subresources = [Assessment, Assessments, EncounterDisposition] nested_objects = { "assessmentLinks": "Assessments", "userRelatedToCalendarEvent": "User", - "disposition": "Disposition", + "disposition": "EncounterDisposition", } @patient_id diff --git a/welkin/models/formation.py b/welkin/models/formation.py index 92517e2..2f63058 100644 --- a/welkin/models/formation.py +++ b/welkin/models/formation.py @@ -1,24 +1,118 @@ from enum import Enum -from welkin.models.base import Collection +from welkin.models.base import Collection, Resource from welkin.pagination import FormationIterator -class FormationDataType(Enum): - cdts = "cdts" - assessments = "assessments" - encounters = "encounters" - encounter_disposition = "encounter-disposition" - care_plan = "goal-templates" - document_types = "document-types" +class AssessmentFormation(Resource): + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/assessments/{self.name}", + *args, + **kwargs, + ) + + +class AssessmentFormations(Collection): + resource = AssessmentFormation + iterator = FormationIterator + + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/assessments", + *args, + **kwargs, + ) + + +class CDTFormation(Resource): + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/cdts/{self.name}", + *args, + **kwargs, + ) + + +class CDTFormations(Collection): + resource = CDTFormation + iterator = FormationIterator + + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/cdts", + *args, + **kwargs, + ) + + +class DocumentTypeFormation(Resource): + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/document-types/{self.name}", + *args, + **kwargs, + ) + + +class DocumentTypeFormations(Collection): + resource = DocumentTypeFormation + iterator = FormationIterator + + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/document-types", + *args, + **kwargs, + ) + + +class EncounterDispositionFormation(Resource): + def get(self, version: int | str = "current", *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/{version}/encounter-disposition/", + *args, + **kwargs, + ) + + +class EncounterFormation(Resource): + def get(self, version: int | str = "current", *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/{version}/encounters/{self.name}", + *args, + **kwargs, + ) + + +class EncounterFormations(Collection): + iterator = FormationIterator + resource = EncounterFormation + + def get(self, version: int | str = "current", *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/{version}/encounters", + *args, + **kwargs, + ) + + +class GoalFormation(Resource): + def get(self, *args, **kwargs): + return super().get( + f"{self._client.instance}/formations/current/goal-templates/{self.name}", + *args, + **kwargs, + ) -class Formations(Collection): +class GoalFormations(Collection): + resource = GoalFormation iterator = FormationIterator - def get(self, data_type: str, *args, **kwargs): + def get(self, *args, **kwargs): return super().get( - f"{self._client.instance}/formations/current/{FormationDataType[data_type].value}", + f"{self._client.instance}/formations/current/goal-templates", *args, **kwargs, ) diff --git a/welkin/pagination.py b/welkin/pagination.py index 646e352..23a7e4e 100644 --- a/welkin/pagination.py +++ b/welkin/pagination.py @@ -98,6 +98,31 @@ def __iter__(self): self.page = 0 return super().__iter__() + def __next__(self): + if self.resources: + return self.resources.pop(0) + + if not self.last: + self._pre_request() + + data = self.method( + self.resource, + meta_key=self.meta_key, + meta_dict=self.meta_dict, + *self.args, + **self.kwargs, + ) + if isinstance(data, dict): + data = [data] + + self.resources = data + + self._post_request({}) + + return next(self) + + raise StopIteration + def _pre_request(self): self.kwargs.setdefault("params", {}).update(page=self.page) From c6d2a2096e538ad87b1e7dcf01fe0983664abbb1 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Thu, 31 Aug 2023 17:01:36 -0700 Subject: [PATCH 10/17] Bump minor version --- welkin/__version__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/welkin/__version__.py b/welkin/__version__.py index ee63553..07f6ad1 100644 --- a/welkin/__version__.py +++ b/welkin/__version__.py @@ -4,7 +4,7 @@ __title__ = "welkin" __description__ = "Python Welkin Health API Wrapper." __url__ = "https://github.com/Lightmatter/welkin-health" -__version__ = "0.0.7" +__version__ = "0.1.0" __author__ = "Sam Morgan" __author_email__ = "sam@lightmatter.com" __license__ = "GNU GPL 3.0" From f9d2082828897ae6a3a7def79cd5740a2947fbe6 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Fri, 1 Sep 2023 12:08:04 -0700 Subject: [PATCH 11/17] Fix type hints --- welkin/models/formation.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/welkin/models/formation.py b/welkin/models/formation.py index 2f63058..6836a21 100644 --- a/welkin/models/formation.py +++ b/welkin/models/formation.py @@ -1,4 +1,4 @@ -from enum import Enum +from typing import Union from welkin.models.base import Collection, Resource from welkin.pagination import FormationIterator @@ -68,7 +68,7 @@ def get(self, *args, **kwargs): class EncounterDispositionFormation(Resource): - def get(self, version: int | str = "current", *args, **kwargs): + def get(self, version: Union[int, str] = "current", *args, **kwargs): return super().get( f"{self._client.instance}/formations/{version}/encounter-disposition/", *args, @@ -77,7 +77,7 @@ def get(self, version: int | str = "current", *args, **kwargs): class EncounterFormation(Resource): - def get(self, version: int | str = "current", *args, **kwargs): + def get(self, version: Union[int, str] = "current", *args, **kwargs): return super().get( f"{self._client.instance}/formations/{version}/encounters/{self.name}", *args, @@ -89,7 +89,7 @@ class EncounterFormations(Collection): iterator = FormationIterator resource = EncounterFormation - def get(self, version: int | str = "current", *args, **kwargs): + def get(self, version: Union[int, str] = "current", *args, **kwargs): return super().get( f"{self._client.instance}/formations/{version}/encounters", *args, From a1e5f153c8a25dd77b5cc4ae6420e507f0842fd6 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Fri, 1 Sep 2023 15:26:42 -0700 Subject: [PATCH 12/17] Move formation endpoints to a target class --- ...> TestFormation.test_assessment_read.yaml} | 10 +- ... TestFormation.test_assessments_read.yaml} | 22 +- ....yaml => TestFormation.test_cdt_read.yaml} | 10 +- ...yaml => TestFormation.test_cdts_read.yaml} | 262 +++++++++--------- ...estFormation.test_document_type_read.yaml} | 10 +- ...stFormation.test_document_types_read.yaml} | 183 ++++++------ ...tion.test_encounter_disposition_read.yaml} | 10 +- ...=> TestFormation.test_encounter_read.yaml} | 8 +- ...> TestFormation.test_encounters_read.yaml} | 16 +- ...yaml => TestFormation.test_goal_read.yaml} | 6 +- ...aml => TestFormation.test_goals_read.yaml} | 6 +- test/test_client.py | 19 +- test/test_formation.py | 123 ++++++++ test/test_formations.py | 127 --------- welkin/client.py | 84 +++--- welkin/models/__init__.py | 26 +- welkin/models/formation.py | 147 +++++----- welkin/util.py | 33 +++ 18 files changed, 544 insertions(+), 558 deletions(-) rename test/cassettes/{test_assessment_formation_read.yaml => TestFormation.test_assessment_read.yaml} (91%) rename test/cassettes/{test_assessment_formations_read.yaml => TestFormation.test_assessments_read.yaml} (99%) rename test/cassettes/{test_cdt_formation_read.yaml => TestFormation.test_cdt_read.yaml} (96%) rename test/cassettes/{test_cdt_formations_read.yaml => TestFormation.test_cdts_read.yaml} (98%) rename test/cassettes/{test_document_type_formation_read.yaml => TestFormation.test_document_type_read.yaml} (95%) rename test/cassettes/{test_document_types_formation_read.yaml => TestFormation.test_document_types_read.yaml} (86%) rename test/cassettes/{test_encounter_disposition_formation_read.yaml => TestFormation.test_encounter_disposition_read.yaml} (97%) rename test/cassettes/{test_encounter_formation_read.yaml => TestFormation.test_encounter_read.yaml} (91%) rename test/cassettes/{test_encounter_formations_read.yaml => TestFormation.test_encounters_read.yaml} (89%) rename test/cassettes/{test_goal_formation_read.yaml => TestFormation.test_goal_read.yaml} (92%) rename test/cassettes/{test_goal_formations_read.yaml => TestFormation.test_goals_read.yaml} (93%) create mode 100644 test/test_formation.py delete mode 100644 test/test_formations.py diff --git a/test/cassettes/test_assessment_formation_read.yaml b/test/cassettes/TestFormation.test_assessment_read.yaml similarity index 91% rename from test/cassettes/test_assessment_formation_read.yaml rename to test/cassettes/TestFormation.test_assessment_read.yaml index f5e6677..b44bef1 100644 --- a/test/cassettes/test_assessment_formation_read.yaml +++ b/test/cassettes/TestFormation.test_assessment_read.yaml @@ -7,17 +7,17 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_314de199-515d-420c-be31-baee23f0b70e Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/assessments/asm-coaching-notes response: body: - string: '{"id": "e9f28ffe-fb61-453f-b14f-f59fad9afaa0", "title": "Coaching Notes", - "name": "asm-coaching-notes", "version": 74, "sections": [{"title": "Coaching + string: '{"id": "7898f4c6-4eb2-472b-b14d-871591496688", "title": "Coaching Notes", + "name": "asm-coaching-notes", "version": 75, "sections": [{"title": "Coaching Notes", "name": "section-1", "order": 0, "fields": [{"label": "Internal Member Overview - General information about patient such as important relationships, current issues, etc. ", "name": "", "refCdtName": "cdt-coaching-notes", "refCdtFieldName": @@ -51,7 +51,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:16 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_assessment_formations_read.yaml b/test/cassettes/TestFormation.test_assessments_read.yaml similarity index 99% rename from test/cassettes/test_assessment_formations_read.yaml rename to test/cassettes/TestFormation.test_assessments_read.yaml index a657fdb..73335a6 100644 --- a/test/cassettes/test_assessment_formations_read.yaml +++ b/test/cassettes/TestFormation.test_assessments_read.yaml @@ -7,17 +7,17 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_1ace5dbe-fdec-4410-bd39-3e972fb4eea6 Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/assessments?page=0 response: body: - string: '[{"id": "e9f28ffe-fb61-453f-b14f-f59fad9afaa0", "title": "Coaching - Notes", "name": "asm-coaching-notes", "version": 74, "sections": [{"title": + string: '[{"id": "7898f4c6-4eb2-472b-b14d-871591496688", "title": "Coaching + Notes", "name": "asm-coaching-notes", "version": 75, "sections": [{"title": "Coaching Notes", "name": "section-1", "order": 0, "fields": [{"label": "Internal Member Overview - General information about patient such as important relationships, current issues, etc. ", "name": "", "refCdtName": "cdt-coaching-notes", "refCdtFieldName": @@ -32,8 +32,8 @@ interactions: false}, "prePopulatedValue": null, "attachments": []}]}], "scoring": {"formula": "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": {"elements": [], "events": []}, "displayType": "SECTIONS", "autoCompleted": - false, "_containsPHI": true}, {"id": "aaa0c1f7-fc9e-42a6-b5bd-23d58849dd50", - "title": "Onboarding", "name": "asm-onboarding", "version": 74, "sections": + false, "_containsPHI": true}, {"id": "9628cea8-cf25-467c-9051-a18866f9aaf1", + "title": "Onboarding", "name": "asm-onboarding", "version": 75, "sections": [{"title": "Patient Answers", "name": "section-1", "order": 0, "fields": [{"label": "What brings you to Zest?", "name": "", "refCdtName": "cdt-onboarding-form", "refCdtFieldName": "cdtf-rationale", "order": 0, "viewType": "question", "meta": @@ -96,8 +96,8 @@ interactions: null, "attachments": []}]}], "scoring": {"formula": "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": {"elements": [], "events": []}, "displayType": "SECTIONS", "autoCompleted": false, "_containsPHI": true}, - {"id": "995c15fb-208f-4463-a22b-c4062ead805a", "title": "Provider Notes", - "name": "asm-provider-notes", "version": 74, "sections": [{"title": "Provider + {"id": "24d273e9-99cd-47fc-9693-ac3c2367f1ec", "title": "Provider Notes", + "name": "asm-provider-notes", "version": 75, "sections": [{"title": "Provider Notes", "name": "section-1", "order": 0, "fields": [{"label": "History & Findings (Internal)", "name": "", "refCdtName": "cdt-soap-notes", "refCdtFieldName": "cdtf-soap-subjective", "order": 0, "viewType": "question", "meta": {"type": @@ -129,8 +129,8 @@ interactions: null, "attachments": []}]}], "scoring": {"formula": "SUM", "groups": []}, "programs": [], "template": null, "conditionSettings": {"elements": [], "events": []}, "displayType": "SECTIONS", "autoCompleted": false, "_containsPHI": true}, - {"id": "5111e297-a9c1-4186-a57b-f69ec0a4c791", "title": "Treatment Recommendations", - "name": "asm-treatment-recommendations", "version": 74, "sections": [{"title": + {"id": "1f77e29e-375b-4fa8-bdf3-455f32c08af4", "title": "Treatment Recommendations", + "name": "asm-treatment-recommendations", "version": 75, "sections": [{"title": "Treatment Recommendations", "name": "section-1", "order": 0, "fields": [{"label": "Optional: Select an OTC treatment and copy the text into the OTC Recommendations field. ", "name": "", "refCdtName": "cdt-treatments", "refCdtFieldName": "cdtf-otc-treatment-list", @@ -912,7 +912,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:16 GMT + - Fri, 01 Sep 2023 22:24:40 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_cdt_formation_read.yaml b/test/cassettes/TestFormation.test_cdt_read.yaml similarity index 96% rename from test/cassettes/test_cdt_formation_read.yaml rename to test/cassettes/TestFormation.test_cdt_read.yaml index eed0196..fc50b43 100644 --- a/test/cassettes/test_cdt_formation_read.yaml +++ b/test/cassettes/TestFormation.test_cdt_read.yaml @@ -7,17 +7,17 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_2401a0af-3af9-4928-9d46-bbccd56314af Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/cdts/allergies response: body: - string: '{"id": "6f288a07-15c6-4e9d-b5b5-d1d04f6259d0", "name": "allergies", - "title": null, "label": null, "version": 74, "internal": false, "readable": + string: '{"id": "be69c457-3dcc-44ad-8aba-667b14ef11a5", "name": "allergies", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "allergy", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -97,7 +97,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:17 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_cdt_formations_read.yaml b/test/cassettes/TestFormation.test_cdts_read.yaml similarity index 98% rename from test/cassettes/test_cdt_formations_read.yaml rename to test/cassettes/TestFormation.test_cdts_read.yaml index b5d5c28..f13a313 100644 --- a/test/cassettes/test_cdt_formations_read.yaml +++ b/test/cassettes/TestFormation.test_cdts_read.yaml @@ -7,17 +7,17 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_d940fa18-3072-4a58-83bd-b8d48f1d7587 Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/cdts?page=0 response: body: - string: '[{"id": "6f288a07-15c6-4e9d-b5b5-d1d04f6259d0", "name": "allergies", - "title": null, "label": null, "version": 74, "internal": false, "readable": + string: '[{"id": "be69c457-3dcc-44ad-8aba-667b14ef11a5", "name": "allergies", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "allergy", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -78,9 +78,9 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "fa1f6d40-8c23-4feb-aaec-db0318f81470", + {"required": false}}], "_containsPHI": false}, {"id": "8aa42a41-8a38-45f2-86e7-6bcdd816a0e2", "name": "asm-patient-interview", "title": null, "label": null, "version": - 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "response", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": @@ -129,8 +129,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "8fc72ef7-8aee-42b2-8db5-527a1d368282", "name": "body_weight", "title": - null, "label": null, "version": 74, "internal": false, "readable": true, "updatable": + {"id": "1b5e9662-fae9-4bf0-a037-6dc3b7415c4a", "name": "body_weight", "title": + null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "current_weight", "type": "integer", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, @@ -183,8 +183,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "d934b027-8b62-412d-be84-fbc0ae55254f", "name": - "cdt-app-date-date-time", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "ee677c3d-48ff-4908-aee9-631331c7e095", "name": + "cdt-app-date-date-time", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-date-only", "type": "date", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -237,8 +237,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "3f15a668-20e0-419f-b052-de8c8305bd83", - "name": "cdt-care-improvement", "title": null, "label": null, "version": 74, + {"required": false}}], "_containsPHI": false}, {"id": "8e34032c-155d-465c-8cd6-acef89fab2bf", + "name": "cdt-care-improvement", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-care-improvement", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, @@ -288,8 +288,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "19dc8ac9-02e1-426c-8004-ad4159b81eb7", "name": - "cdt-check-ins", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "4ffd84dd-f647-4a8f-877c-407999b46740", "name": + "cdt-check-ins", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-skin-look-feel", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -411,8 +411,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "07e2585a-7a5e-418f-bd2f-081df6c36b6f", "name": "cdt-coaching-notes", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "76ce2827-8f72-495d-976d-df8a7b036c2a", "name": "cdt-coaching-notes", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-focus-today", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -480,8 +480,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": true}, {"id": "b32dec48-cc25-4390-926e-351da8db787d", - "name": "cdt-diagnosis", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": true}, {"id": "f01c802d-cecb-41c5-9d3f-968acbc607ed", + "name": "cdt-diagnosis", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-diagnosis", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -560,8 +560,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "de941707-eae1-46a0-88af-49c261e7b6b3", "name": - "cdt-encounter-status", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "528caabe-a5a8-4d51-8383-32eb896276f8", "name": + "cdt-encounter-status", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-encounter-notes-status", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": @@ -614,8 +614,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "c85653e4-302f-45cb-8989-412f416f7ce6", "name": "cdt-flare-description", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "c2f62af9-42bb-4adc-9ee3-75a8464b2017", "name": "cdt-flare-description", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-flare-description", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": true, "bulkEdit": @@ -727,8 +727,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "19b52a61-544f-47e6-90b3-53f567f5be21", - "name": "cdt-general-note", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": false}, {"id": "760d321a-9e74-4153-8bbc-fd3b2740e184", + "name": "cdt-general-note", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "general_note", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -778,8 +778,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": true}, - {"id": "6cfc57bf-13a1-4d90-b100-0dd57a79fd99", "name": "cdt-intake-form", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "a704c8f1-474b-4a2f-8953-70791ef2393a", "name": "cdt-intake-form", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-time-diagnosed", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -896,8 +896,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "ac50d663-415b-4bad-b80e-09492f1e818d", "name": - "cdt-intake-summary", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": true}, {"id": "f88af71e-2ad1-48e3-a0e8-01d7742c3e7a", "name": + "cdt-intake-summary", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-typeform-summary", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": @@ -947,8 +947,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "7a46c094-7ec9-426b-9b71-8337397510f8", "name": - "cdt-intake-treatments", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": true}, {"id": "a91a75d6-e5fb-4936-9b80-3f7e07ef6454", "name": + "cdt-intake-treatments", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-using-rx", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -1023,8 +1023,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "43be3819-e702-4b92-8a93-0ccc159d4804", - "name": "cdt-internal-comms", "title": null, "label": null, "version": 74, + {"required": false}}], "_containsPHI": false}, {"id": "08ca5afe-310c-4bba-a5df-b5892185efa8", + "name": "cdt-internal-comms", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-internal-communication", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, @@ -1074,8 +1074,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "7b675507-0289-42fe-b433-b80e2490e4f1", "name": - "cdt-member-surveys", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "cf388e7c-3d7a-4952-80ff-03d4486676da", "name": + "cdt-member-surveys", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-trigger-member-survey", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": @@ -1126,8 +1126,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "31656104-c49d-486f-9aa6-f732cf6935c5", "name": - "cdt-onboarding-form", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "fa38475e-6b33-485c-a1e9-30bdc7b03589", "name": + "cdt-onboarding-form", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-rationale", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -1239,8 +1239,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "199e7e94-a582-44f6-9b6c-5cad4af95fa3", "name": - "cdt-otc-topicals-test", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": true}, {"id": "a718b596-0960-4eea-9455-0c6fd0d36cae", "name": + "cdt-otc-topicals-test", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-salicylic-acid", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -1299,9 +1299,9 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "4b221c31-02f6-4658-a8d3-c68274b4275d", + {"required": false}}], "_containsPHI": false}, {"id": "9b941464-6afc-4ce9-b155-ef26ab51e2af", "name": "cdt-patientreportedtreatments", "title": null, "label": null, "version": - 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-treatments", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, @@ -1350,8 +1350,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "6ecf5843-4dbd-406b-85dc-e40cb91de99a", "name": - "cdt-pharmacy", "title": null, "label": null, "version": 74, "internal": false, + "_containsPHI": false}, {"id": "da6804c6-aacb-421a-8487-b9b2f1d37b94", "name": + "cdt-pharmacy", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -1408,8 +1408,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "716f3388-bd1d-4b55-89fe-257e9d1418d7", "name": "cdt-quality-of-life", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "0d85560c-b2ca-4cce-8cc2-01b3cebf6ae3", "name": "cdt-quality-of-life", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-overal-qol", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -1462,8 +1462,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "a40dfe58-b90f-4426-b69a-9d11096b0954", "name": - "cdt-severity", "title": null, "label": null, "version": 74, "internal": false, + "_containsPHI": false}, {"id": "a1895661-7fdc-40ba-bdf6-5fac6b40c4e9", "name": + "cdt-severity", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-body-surface-area", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -1516,8 +1516,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": true}, {"id": "4bf46411-ee60-4abd-8dc3-2a6966ce95f1", - "name": "cdt-soap-notes", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": true}, {"id": "06fd28ea-9eb4-4547-8215-66c8befbaacb", + "name": "cdt-soap-notes", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-soap-subjective", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": @@ -1593,8 +1593,62 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": true}, {"id": "085eb3a4-6a18-4a16-9e82-d02def667f72", - "name": "cdt-treatments", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": true}, {"id": "8ad2a0e8-e76b-41a9-8cdc-64ac21b01af3", + "name": "cdt-treatment-satisfaction", "title": null, "label": null, "version": + 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "COMMON", "fields": [{"name": "cdtf-rx-sat", "type": "select", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": + {"required": false, "options": [{"label": "1", "value": "1", "refCdtName": + null}, {"label": "2", "value": "2", "refCdtName": null}, {"label": "3", "value": + "3", "refCdtName": null}, {"label": "4", "value": "4", "refCdtName": null}, + {"label": "5", "value": "5", "refCdtName": null}]}}, {"name": "id", "type": + "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "created_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "source_name", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + "dictionary": null, "profileDataType": null, "editable": false, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}, + {"name": "external_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}], "_containsPHI": false}, {"id": "68d56a3c-d709-4dff-b8b1-786b8d988f7f", + "name": "cdt-treatments", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdtf-otc-treatment-list", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": @@ -1710,62 +1764,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "af0912aa-5bb0-4644-9f4f-5656734fcde0", - "name": "cdt-treatment-satisfaction", "title": null, "label": null, "version": - 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", - "relation": "COMMON", "fields": [{"name": "cdtf-rx-sat", "type": "select", - "formula": null, "dictionary": null, "profileDataType": null, "editable": - true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, - "injectedSource": false, "displayType": "SELECT", "valueType": "STRING", "meta": - {"required": false, "options": [{"label": "1", "value": "1", "refCdtName": - null}, {"label": "2", "value": "2", "refCdtName": null}, {"label": "3", "value": - "3", "refCdtName": null}, {"label": "4", "value": "4", "refCdtName": null}, - {"label": "5", "value": "5", "refCdtName": null}]}}, {"name": "id", "type": - "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": - false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, - "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": - false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": - null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "created_by_name", "type": "text", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": - false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": - null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": - false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "source_name", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "source_id", "type": "text", "formula": null, - "dictionary": null, "profileDataType": null, "editable": false, "searchable": - false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "external_id", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "bb83e0aa-e685-4186-a366-89dbdcb53c01", - "name": "cdt-weight", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": false}, {"id": "3f74233c-6006-488e-bf57-8493188cc854", + "name": "cdt-weight", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "cdt-weight", "type": "integer", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -1815,8 +1815,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "e6da0717-9768-46b3-8778-61b7b992be6c", - "name": "df_allergies", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": false}, {"id": "100aea43-c8cd-4adb-b9a8-20a607728504", + "name": "df_allergies", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "allergen", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -1954,8 +1954,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "bf514d31-a14f-4bae-a443-e8bc06e40c7d", "name": "df_diagnoses_problems", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "e428981c-3e39-40da-a12e-2e62a7ff6c7c", "name": "df_diagnoses_problems", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "diagnosis_coding_system", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -2073,8 +2073,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "f81ab3e4-246d-4b7f-9de7-5f147afda171", "name": - "df_medications", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "00834c9f-b5b0-435c-bac8-7b768e8bef5e", "name": + "df_medications", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "start_date", "type": "date", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -2304,8 +2304,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "b98e6402-a3a9-4e63-8288-f90f913ca0ad", "name": - "df_refill_notification", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "d9804141-5fcf-4ed3-b7f3-7b4e91765893", "name": + "df_refill_notification", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "creation_date", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -2397,9 +2397,9 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "cb595330-a3e6-42f0-a17a-d033332a611f", + {"required": false}}], "_containsPHI": false}, {"id": "860f5459-0721-45a4-ab7f-f381ba6e8517", "name": "df_refill_notifications", "title": null, "label": null, "version": - 74, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", + 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "creation_date", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, @@ -2535,8 +2535,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "c56d03ec-81d8-4291-b87b-1a0d1225347a", "name": "family-medical-history", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "2c742592-74e0-4811-8779-b49bffa850c6", "name": "family-medical-history", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "historical-disease", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -2598,8 +2598,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "1d1e5455-11a6-4880-b7ad-2eff37c14f1e", "name": "historical-medical-conditions", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "85b2c32e-efb3-4807-ace2-587f93d61c0f", "name": "historical-medical-conditions", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "historical-disease", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -2657,8 +2657,8 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": false}, {"id": "921fca7e-1a1e-47ee-a811-dcec8c837548", - "name": "hospitalizations", "title": null, "label": null, "version": 74, "internal": + {"required": false}}], "_containsPHI": false}, {"id": "dd791f0d-ffb9-4e50-9305-124dd146f6f7", + "name": "hospitalizations", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "treatment_type", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -2719,8 +2719,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "db8c05dc-deea-4f2f-8e8e-a9e0bf6e0ae4", "name": - "insurance", "title": null, "label": null, "version": 74, "internal": false, + "_containsPHI": false}, {"id": "2c3e3c55-4a01-47c6-9423-9639e9440a23", "name": + "insurance", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "insured-name-first", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -2807,8 +2807,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": true}, - {"id": "2b1548b7-a72e-4fc4-9497-7c31aeccc52a", "name": "medications", "title": - null, "label": null, "version": 74, "internal": false, "readable": true, "updatable": + {"id": "da1c3707-080e-4c39-be21-ec7326eb497d", "name": "medications", "title": + null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "medication_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": @@ -2876,8 +2876,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": false}, {"id": "0334a7bb-14e9-47cd-a6bf-6ad6b4e384c2", "name": - "patient_contacts", "title": null, "label": null, "version": 74, "internal": + "_containsPHI": false}, {"id": "df62c98c-9855-44c1-b381-5164b91fc4be", "name": + "patient_contacts", "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "contat_type", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -2943,8 +2943,8 @@ interactions: "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], "_containsPHI": false}, - {"id": "beec828a-977b-4fc3-a1c4-f63f8af3ccdc", "name": "preferred_contact_type", - "title": null, "label": null, "version": 74, "internal": false, "readable": + {"id": "38402086-6a76-47c1-95e7-6c31da9956fc", "name": "preferred_contact_type", + "title": null, "label": null, "version": 75, "internal": false, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "COMMON", "fields": [{"name": "preferred_contact_type", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -3015,7 +3015,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:17 GMT + - Fri, 01 Sep 2023 22:24:40 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_document_type_formation_read.yaml b/test/cassettes/TestFormation.test_document_type_read.yaml similarity index 95% rename from test/cassettes/test_document_type_formation_read.yaml rename to test/cassettes/TestFormation.test_document_type_read.yaml index bceadf5..dc6e2e4 100644 --- a/test/cassettes/test_document_type_formation_read.yaml +++ b/test/cassettes/TestFormation.test_document_type_read.yaml @@ -7,17 +7,17 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_85889acd-d01d-4d70-9d17-77f4deee08f9 Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/document-types/doc-type-others response: body: - string: '{"id": "fde8d6ff-0f2b-473e-9a97-bc8cdfac0622", "name": "doc-type-others", - "title": "Others", "label": "Others", "version": 74, "internal": true, "readable": + string: '{"id": "19b62276-8b19-4662-aa95-a1c65ce8dfe6", "name": "doc-type-others", + "title": "Others", "label": "Others", "version": 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": @@ -85,7 +85,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:18 GMT + - Fri, 01 Sep 2023 22:24:40 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_document_types_formation_read.yaml b/test/cassettes/TestFormation.test_document_types_read.yaml similarity index 86% rename from test/cassettes/test_document_types_formation_read.yaml rename to test/cassettes/TestFormation.test_document_types_read.yaml index 7c1636c..ca3b004 100644 --- a/test/cassettes/test_document_types_formation_read.yaml +++ b/test/cassettes/TestFormation.test_document_types_read.yaml @@ -7,18 +7,18 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_7a18ec10-2230-4efa-a6ff-c4dce93b580b Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/document-types?page=0 response: body: - string: '[{"id": "a9f04c40-1092-4727-8162-f58b73d397d1", "name": "doc-type-assessment", - "title": "Assessment", "label": "Assessment", "version": 74, "internal": true, - "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", + string: '[{"id": "19b62276-8b19-4662-aa95-a1c65ce8dfe6", "name": "doc-type-others", + "title": "Others", "label": "Others", "version": 75, "internal": true, "readable": + true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": false, "displayType": @@ -66,15 +66,15 @@ interactions: "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": true}, {"id": "35363baa-2a26-4b16-ad84-26d4f64e76e9", - "name": "doc-type-docusign", "title": "Docusign", "label": "Docusign", "version": - 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", - "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", - "formula": null, "dictionary": null, "profileDataType": null, "editable": - true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, - "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": - false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + {"required": false}}], "_containsPHI": true}, {"id": "b356ecb8-31f6-4f73-9e01-f671c02536d5", + "name": "doc-type-assessment", "title": "Assessment", "label": "Assessment", + "version": 75, "internal": true, "readable": true, "updatable": true, "type": + "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", + "type": "text", "formula": null, "dictionary": null, "profileDataType": null, + "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": + false, "injectedSource": false, "displayType": null, "valueType": null, "meta": + {"required": false}}, {"name": "id", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": null, "profileDataType": @@ -117,110 +117,111 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "fde8d6ff-0f2b-473e-9a97-bc8cdfac0622", "name": - "doc-type-others", "title": "Others", "label": "Others", "version": 74, "internal": - true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": - "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", "formula": null, - "dictionary": null, "profileDataType": null, "editable": true, "searchable": - false, "bulkEdit": false, "phi": true, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "id", "type": "text", "formula": null, "dictionary": null, "profileDataType": + "_containsPHI": true}, {"id": "0c1fbcbb-152f-4613-ac22-48efdfaf6a98", "name": + "doc-type-docusign", "title": "Docusign", "label": "Docusign", "version": + 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "notes", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + false, "phi": false, "disable": false, "injectedSource": false, "displayType": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": - null, "meta": {"required": false}}, {"name": "created_at", "type": "datetime", + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": - false}}, {"name": "created_by", "type": "text", "formula": null, "dictionary": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "created_by_name", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "updated_at", "type": "datetime", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": - false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "updated_by", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": + null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by_name", + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "source_name", "type": "text", "formula": null, + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "source_type", "type": "text", "formula": null, "dictionary": null, + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "source_id", + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": + "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "external_id", "type": "text", "formula": null, - "dictionary": null, "profileDataType": null, "editable": true, "searchable": + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "external_guid", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "7e257d38-adf5-4b12-9976-f630c6ca13b1", "name": + "dt-driver-s-license", "title": "Driver''s License", "label": null, "version": + 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-notes", "type": "textarea", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}], "_containsPHI": true}, - {"id": "e7013017-3247-414f-b5d6-b2fc888780f2", "name": "dt-driver-s-license", - "title": "Driver''s License", "label": null, "version": 74, "internal": true, - "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", - "fields": [{"name": "dtf-notes", "type": "textarea", "formula": null, "dictionary": - null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": - false, "phi": true, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "id", "type": - "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": + null, "valueType": null, "meta": {"required": false}}, {"name": "created_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "created_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": - false}}, {"name": "created_at", "type": "datetime", "formula": null, "dictionary": + false}}, {"name": "created_by_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "created_by", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "created_by_name", "type": "text", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": - false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "updated_at", "type": "datetime", "formula": null, "dictionary": + null, "valueType": null, "meta": {"required": false}}, {"name": "updated_at", + "type": "datetime", "formula": null, "dictionary": null, "profileDataType": + null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, + "disable": false, "injectedSource": false, "displayType": null, "valueType": + null, "meta": {"required": false}}, {"name": "updated_by", "type": "text", + "formula": null, "dictionary": null, "profileDataType": null, "editable": + false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, + "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": + false}}, {"name": "updated_by_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "updated_by", - "type": "text", "formula": null, "dictionary": null, "profileDataType": null, - "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": - false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "updated_by_name", "type": "text", "formula": - null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": - false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": - false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "source_name", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": - false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "source_type", + null, "valueType": null, "meta": {"required": false}}, {"name": "source_name", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}, {"name": "source_id", "type": "text", "formula": null, + {"required": false}}, {"name": "source_type", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}, - {"name": "external_id", "type": "text", "formula": null, "dictionary": null, - "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": + {"name": "source_id", "type": "text", "formula": null, "dictionary": null, + "profileDataType": null, "editable": false, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": - null, "valueType": null, "meta": {"required": false}}, {"name": "external_guid", + null, "valueType": null, "meta": {"required": false}}, {"name": "external_id", "type": "text", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": - {"required": false}}], "_containsPHI": true}, {"id": "a6ec6e3a-1a46-494b-bbf2-d85f8899279b", - "name": "dt-insurance-card", "title": "Insurance Card", "label": null, "version": - 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + {"required": false}}, {"name": "external_guid", "type": "text", "formula": + null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": + false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": + false, "displayType": null, "valueType": null, "meta": {"required": false}}], + "_containsPHI": true}, {"id": "a4fef951-8c65-4114-a0cb-785ad4061396", "name": + "dt-insurance-card", "title": "Insurance Card", "label": null, "version": + 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-notes", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, @@ -269,8 +270,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "c61e0c04-74c2-4386-9b68-ddc41e0be4b1", "name": - "dt-intake-images", "title": "Intake Images", "label": null, "version": 74, + "_containsPHI": true}, {"id": "e0084895-4e16-407b-afe0-ac7cc9668d77", "name": + "dt-intake-images", "title": "Intake Images", "label": null, "version": 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-notes", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": @@ -320,9 +321,9 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "548fbe23-17c1-4e05-8bd9-75513d362fd1", "name": + "_containsPHI": true}, {"id": "6172405d-8580-4a0b-8cf9-cae31fd6727c", "name": "dt-patient-images", "title": "Patient Images", "label": null, "version": - 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-pi-notes", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, @@ -371,9 +372,9 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "86e506fd-ca91-4c55-8e7b-3d3cfe8c81fc", "name": + "_containsPHI": true}, {"id": "3233161c-32fb-4986-98aa-a66ece6a6a03", "name": "dt-prior-authorization", "title": "Prior Authorization", "label": null, "version": - 74, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", + 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "dtf-pa-notes", "type": "textarea", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": true, "disable": false, @@ -422,8 +423,8 @@ interactions: null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": false, "bulkEdit": false, "phi": false, "disable": false, "injectedSource": false, "displayType": null, "valueType": null, "meta": {"required": false}}], - "_containsPHI": true}, {"id": "35be4968-e520-48e2-9941-f0ea06ed2c0b", "name": - "medical-records", "title": "Medical Records", "label": null, "version": 74, + "_containsPHI": true}, {"id": "20189d3a-79ed-4d67-aada-aae40f58697d", "name": + "medical-records", "title": "Medical Records", "label": null, "version": 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "DOCUMENT_TYPE", "fields": [{"name": "date", "type": "date", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -500,7 +501,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:18 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_encounter_disposition_formation_read.yaml b/test/cassettes/TestFormation.test_encounter_disposition_read.yaml similarity index 97% rename from test/cassettes/test_encounter_disposition_formation_read.yaml rename to test/cassettes/TestFormation.test_encounter_disposition_read.yaml index 687a556..97f3fad 100644 --- a/test/cassettes/test_encounter_disposition_formation_read.yaml +++ b/test/cassettes/TestFormation.test_encounter_disposition_read.yaml @@ -7,17 +7,17 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_12af1fd5-eb3a-45f8-888f-9e3ea26cfc5d Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounter-disposition response: body: - string: '{"id": "3ea2d3da-0d25-427e-a379-8d4d13b2d244", "name": "__encounter_disposition__", - "title": null, "label": null, "version": 74, "internal": true, "readable": + string: '{"id": "9175c8e7-1efb-4a9e-8c99-e5f1e97fe861", "name": "__encounter_disposition__", + "title": null, "label": null, "version": 75, "internal": true, "readable": true, "updatable": true, "type": "MULTI_RECORD", "relation": "ENCOUNTER_DISPOSITION", "fields": [{"name": "disposition-code", "type": "select", "formula": null, "dictionary": null, "profileDataType": null, "editable": true, "searchable": @@ -124,7 +124,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:19 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_encounter_formation_read.yaml b/test/cassettes/TestFormation.test_encounter_read.yaml similarity index 91% rename from test/cassettes/test_encounter_formation_read.yaml rename to test/cassettes/TestFormation.test_encounter_read.yaml index cb5c3d5..8bd9e6a 100644 --- a/test/cassettes/test_encounter_formation_read.yaml +++ b/test/cassettes/TestFormation.test_encounter_read.yaml @@ -7,16 +7,16 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_88dcbaa4-92cd-4102-a9c1-68a0cc2b2f4f Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounters/etmp-coaching-introduction response: body: - string: '{"id": "18f625e5-1520-40c3-925f-40e533200e87", "name": "etmp-coaching-introduction", + string: '{"id": "0521bc9f-51e1-4d6b-9453-e12f6666aa99", "name": "etmp-coaching-introduction", "title": "Coaching Introduction", "encounterDescription": "", "encounterInstruction": "
    \n
  1. Review the patient''s summary, encounters, and past assessments as needed.
  2. \n
  3. Change Encounter status to In Progress when session begins.
  4. \n
  5. Add @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:19 GMT + - Fri, 01 Sep 2023 22:24:40 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_encounter_formations_read.yaml b/test/cassettes/TestFormation.test_encounters_read.yaml similarity index 89% rename from test/cassettes/test_encounter_formations_read.yaml rename to test/cassettes/TestFormation.test_encounters_read.yaml index e9a01f3..20fb83f 100644 --- a/test/cassettes/test_encounter_formations_read.yaml +++ b/test/cassettes/TestFormation.test_encounters_read.yaml @@ -7,16 +7,16 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_a654176b-30d4-4b21-9bc2-81d54fd92578 Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/encounters?page=0 response: body: - string: '[{"id": "18f625e5-1520-40c3-925f-40e533200e87", "name": "etmp-coaching-introduction", + string: '[{"id": "0521bc9f-51e1-4d6b-9453-e12f6666aa99", "name": "etmp-coaching-introduction", "title": "Coaching Introduction", "encounterDescription": "", "encounterInstruction": "
      \n
    1. Review the patient''s summary, encounters, and past assessments as needed.
    2. \n
    3. Change Encounter status to In Progress when session begins.
    4. \n
    5. Add @@ -24,7 +24,7 @@ interactions: the patient
    6. \n
    7. Close the Encounter
    8. \n
    \n", "encounterColor": "#e67b2d", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": 15, "assessmentNames": ["asm-coaching-notes", "asm-treatment-recommendations"]}, - {"id": "b734cb0f-99c0-463c-bece-7a6453b50f37", "name": "etmp-coaching-notes", + {"id": "17d6101a-bfda-4167-84bf-08f4a3728c82", "name": "etmp-coaching-notes", "title": "Coaching Session", "encounterDescription": "", "encounterInstruction": "
      \n
    1. 1. Review the patient''s summary, encounters, and past assessments as needed.
    2. \n
    3. Change Encounter status to In Progress when session begins.
    4. \n
    5. Add @@ -32,20 +32,20 @@ interactions: the patient
    6. \n
    7. Close the Encounter
    8. \n
    \n", "encounterColor": "#e67b2d", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": 15, "assessmentNames": ["asm-coaching-notes", "asm-treatment-recommendations"]}, - {"id": "53fb1f46-dc65-4100-bf26-4238b81101d5", "name": "etmp-dermatologist-consult", + {"id": "3cb86ccb-ffa8-4bed-bce4-8e14fb22f124", "name": "etmp-dermatologist-consult", "title": "Dermatologist Consult", "encounterDescription": "", "encounterInstruction": "
      \n
    1. Review Patient Summary and Prescriptions
    2. \n
    3. Complete Zoom call
    4. \n
    5. Record notes
    6. \n
    7. Select treatments for patient
    8. \n
    9. Record prescriptions in Dr. First
    10. \n
    11. Close encounter
    12. \n
    \n", "encounterColor": "#00a7be", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": 15, "assessmentNames": ["asm-provider-notes", "asm-treatment-recommendations"]}, - {"id": "77148455-e74e-4df8-9ea8-242545147ac4", "name": "new-patient-call", + {"id": "296018d9-e23c-4f39-b9d6-fd12e78db239", "name": "new-patient-call", "title": "New Member Visit", "encounterDescription": "", "encounterInstruction": "
      \n
    1. Review Patient Summary and Prescriptions
    2. \n
    3. Complete Zoom call
    4. \n
    5. Record notes
    6. \n
    7. Select treatments for patient
    8. \n
    9. Record prescriptions in Dr. First
    10. \n
    11. Close encounter
    12. \n
    \n", "encounterColor": "#00a7be", "type": "Async", "deliveryMethod": "VIDEO", "defaultDuration": - 15, "assessmentNames": ["asm-treatment-recommendations", "asm-coaching-notes"]}]' + 15, "assessmentNames": ["asm-treatment-recommendations", "asm-provider-notes"]}]' headers: Access-Control-Allow-Headers: - authorization, content-type, xsrf-token, security-role @@ -64,7 +64,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:18 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_goal_formation_read.yaml b/test/cassettes/TestFormation.test_goal_read.yaml similarity index 92% rename from test/cassettes/test_goal_formation_read.yaml rename to test/cassettes/TestFormation.test_goal_read.yaml index 30c9933..5934afc 100644 --- a/test/cassettes/test_goal_formation_read.yaml +++ b/test/cassettes/TestFormation.test_goal_read.yaml @@ -7,11 +7,11 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_1ace5dbe-fdec-4410-bd39-3e972fb4eea6 Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/goal-templates/eat-fruit response: @@ -37,7 +37,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:20 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/cassettes/test_goal_formations_read.yaml b/test/cassettes/TestFormation.test_goals_read.yaml similarity index 93% rename from test/cassettes/test_goal_formations_read.yaml rename to test/cassettes/TestFormation.test_goals_read.yaml index 012aa9f..5c71461 100644 --- a/test/cassettes/test_goal_formations_read.yaml +++ b/test/cassettes/TestFormation.test_goals_read.yaml @@ -7,11 +7,11 @@ interactions: Accept-Encoding: - gzip, deflate Authorization: - - API_TOKEN_cff86b44-e229-44da-823c-57f4a9307c31 + - API_TOKEN_bd0fb5cd-8762-4adc-a86b-121094ac40a9 Connection: - keep-alive User-Agent: - - python-welkin/0.0.7 + - python-welkin/0.1.0 method: GET uri: https://api.live.welkincloud.io/tenant_REDACTED/instance_REDACTED/formations/current/goal-templates?page=0 response: @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 31 Aug 2023 23:44:20 GMT + - Fri, 01 Sep 2023 22:24:41 GMT Expires: - '0' Pragma: diff --git a/test/test_client.py b/test/test_client.py index 433de78..c022cb8 100644 --- a/test/test_client.py +++ b/test/test_client.py @@ -1,12 +1,17 @@ import inspect -from welkin.models import __all__ as all_models +import pytest +from welkin.models import __all__ +from welkin.util import Target -def test_build_resources(client): - for class_name in all_models: - assert hasattr(client, class_name) - attr = getattr(client, class_name) - assert inspect.isclass(attr) - assert attr._client == client +@pytest.mark.parametrize("class_name", __all__) +def test_build_resources(client, class_name): + attr = getattr(client, class_name) + + if issubclass(attr, Target): + return + + assert inspect.isclass(attr) + assert attr._client == client diff --git a/test/test_formation.py b/test/test_formation.py new file mode 100644 index 0000000..a2eb71e --- /dev/null +++ b/test/test_formation.py @@ -0,0 +1,123 @@ +import pytest + +from welkin.models.formation import ( + CDT, + Assessment, + Assessments, + CDTs, + DocumentType, + DocumentTypes, + Encounter, + EncounterDisposition, + Encounters, + Formation, + Goal, + Goals, +) + + +class TestFormation: + @pytest.fixture + def formation(self, client) -> Formation: + return client.Formation() + + @pytest.mark.vcr + def test_assessments_read(self, formation, vcr_cassette): + assessment_formations = formation.Assessments().get() + + assert isinstance(assessment_formations, Assessments) + assert isinstance(assessment_formations[0], Assessment) + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_assessment_read(self, formation, vcr_cassette): + assessment_template = formation.Assessment(name="asm-coaching-notes").get() + + assert isinstance(assessment_template, Assessment) + assert assessment_template.name == "asm-coaching-notes" + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_cdts_read(self, formation, vcr_cassette): + cdt_formations = formation.CDTs().get() + + assert isinstance(cdt_formations, CDTs) + assert isinstance(cdt_formations[0], CDT) + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_cdt_read(self, formation, vcr_cassette): + cdt_template = formation.CDT(name="allergies").get() + + assert isinstance(cdt_template, CDT) + assert cdt_template.name == "allergies" + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_document_type_read(self, formation, vcr_cassette): + document_type = formation.DocumentType(name="doc-type-others").get() + + assert isinstance(document_type, DocumentType) + assert document_type.name == "doc-type-others" + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_document_types_read(self, formation, vcr_cassette): + document_types = formation.DocumentTypes().get() + + assert isinstance(document_types, DocumentTypes) + assert isinstance(document_types[0], DocumentType) + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_encounters_read(self, formation, vcr_cassette): + encounter_formations = formation.Encounters().get() + + assert isinstance(encounter_formations, Encounters) + assert isinstance(encounter_formations[0], Encounter) + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_encounter_read(self, formation, vcr_cassette): + encounter_template = formation.Encounter( + name="etmp-coaching-introduction" + ).get() + + assert isinstance(encounter_template, Encounter) + assert encounter_template.name == "etmp-coaching-introduction" + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_encounter_disposition_read(self, formation, vcr_cassette): + encounter_disposition_formation = formation.EncounterDisposition().get() + + assert isinstance(encounter_disposition_formation, EncounterDisposition) + assert encounter_disposition_formation.name == "__encounter_disposition__" + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_goals_read(self, formation, vcr_cassette): + goal_templates = formation.Goals().get() + + assert isinstance(goal_templates, Goals) + assert isinstance(goal_templates[0], Goal) + + assert len(vcr_cassette) == 1 + + @pytest.mark.vcr + def test_goal_read(self, formation, vcr_cassette): + goal_template = formation.Goal(name="eat-fruit").get() + + assert isinstance(goal_template, Goal) + assert goal_template.name == "eat-fruit" + + assert len(vcr_cassette) == 1 diff --git a/test/test_formations.py b/test/test_formations.py deleted file mode 100644 index e9c2879..0000000 --- a/test/test_formations.py +++ /dev/null @@ -1,127 +0,0 @@ -import pytest - -from welkin.models import ( - AssessmentFormation, - AssessmentFormations, - CDTFormation, - CDTFormations, - DocumentTypeFormation, - DocumentTypeFormations, - EncounterDispositionFormation, - EncounterFormation, - EncounterFormations, - GoalFormation, - GoalFormations, -) - - -@pytest.mark.vcr -def test_assessment_formations_read(client, vcr_cassette): - assessment_formations = client.AssessmentFormations().get() - - assert isinstance(assessment_formations, AssessmentFormations) - assert isinstance(assessment_formations[0], AssessmentFormation) - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_assessment_formation_read(client, vcr_cassette): - assessment_template = client.AssessmentFormation(name="asm-coaching-notes").get() - - assert isinstance(assessment_template, AssessmentFormation) - assert assessment_template.name == "asm-coaching-notes" - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_cdt_formations_read(client, vcr_cassette): - cdt_formations = client.CDTFormations().get() - - assert isinstance(cdt_formations, CDTFormations) - assert isinstance(cdt_formations[0], CDTFormation) - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_cdt_formation_read(client, vcr_cassette): - cdt_template = client.CDTFormation(name="allergies").get() - - assert isinstance(cdt_template, CDTFormation) - assert cdt_template.name == "allergies" - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_document_type_formation_read(client, vcr_cassette): - document_type = client.DocumentTypeFormation(name="doc-type-others").get() - - assert isinstance(document_type, DocumentTypeFormation) - assert document_type.name == "doc-type-others" - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_document_types_formation_read(client, vcr_cassette): - document_types = client.DocumentTypeFormations().get() - - assert isinstance(document_types, DocumentTypeFormations) - assert isinstance(document_types[0], DocumentTypeFormation) - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_encounter_formations_read(client, vcr_cassette): - encounter_formations = client.EncounterFormations().get() - - assert isinstance(encounter_formations, EncounterFormations) - assert isinstance(encounter_formations[0], EncounterFormation) - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_encounter_formation_read(client, vcr_cassette): - encounter_template = client.EncounterFormation( - name="etmp-coaching-introduction" - ).get() - - assert isinstance(encounter_template, EncounterFormation) - assert encounter_template.name == "etmp-coaching-introduction" - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_encounter_disposition_formation_read(client, vcr_cassette): - encounter_disposition_formation = client.EncounterDispositionFormation().get() - - assert isinstance(encounter_disposition_formation, EncounterDispositionFormation) - assert encounter_disposition_formation.name == "__encounter_disposition__" - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_goal_formations_read(client, vcr_cassette): - goal_templates = client.GoalFormations().get() - - assert isinstance(goal_templates, GoalFormations) - assert isinstance(goal_templates[0], GoalFormation) - - assert len(vcr_cassette) == 1 - - -@pytest.mark.vcr -def test_goal_formation_read(client, vcr_cassette): - goal_template = client.GoalFormation(name="eat-fruit").get() - - assert isinstance(goal_template, GoalFormation) - assert goal_template.name == "eat-fruit" - - assert len(vcr_cassette) == 1 diff --git a/welkin/client.py b/welkin/client.py index e017bce..3838ebb 100644 --- a/welkin/client.py +++ b/welkin/client.py @@ -14,8 +14,7 @@ from welkin import __version__, models from welkin.authentication import WelkinAuth from welkin.exceptions import WelkinHTTPError -from welkin.models.base import Collection, Resource -from welkin.util import clean_request_params, clean_request_payload +from welkin.util import _build_resources, clean_request_params, clean_request_payload logger = logging.getLogger(__name__) @@ -70,6 +69,35 @@ class Client(Session): user.delete() # Delete """ + Assessment = models.Assessment + AssessmentRecord = models.AssessmentRecord + AssessmentRecordAnswers = models.AssessmentRecordAnswers + AssessmentRecords = models.AssessmentRecords + Assessments = models.Assessments + CalendarEvent = models.CalendarEvent + CalendarEvents = models.CalendarEvents + CarePlan = models.CarePlan + CarePlanOverview = models.CarePlanOverview + CDT = models.CDT + CDTs = models.CDTs + Chat = models.Chat + Chats = models.Chats + DocumentSummaries = models.DocumentSummaries + DocumentSummary = models.DocumentSummary + DocumentSummaryFile = models.DocumentSummaryFile + DocumentSummaryFiles = models.DocumentSummaryFiles + Encounter = models.Encounter + EncounterDisposition = models.EncounterDisposition + Encounters = models.Encounters + Formation = models.Formation + Patient = models.Patient + Patients = models.Patients + Schedules = models.Schedules + SearchChats = models.SearchChats + User = models.User + Users = models.Users + WorkHours = models.WorkHours + def __init__( self, tenant, @@ -125,57 +153,7 @@ def __init__( ) self.instance = instance - self.__build_resources() - - def __build_resources(self) -> None: - """Add each resource with a reference to this instance.""" - self.Assessment = models.Assessment - self.AssessmentFormation = models.AssessmentFormation - self.AssessmentFormations = models.AssessmentFormations - self.AssessmentRecord = models.AssessmentRecord - self.AssessmentRecordAnswers = models.AssessmentRecordAnswers - self.AssessmentRecords = models.AssessmentRecords - self.Assessments = models.Assessments - self.CalendarEvent = models.CalendarEvent - self.CalendarEvents = models.CalendarEvents - self.CarePlan = models.CarePlan - self.CarePlanOverview = models.CarePlanOverview - self.CDT = models.CDT - self.CDTFormation = models.CDTFormation - self.CDTFormations = models.CDTFormations - self.CDTs = models.CDTs - self.Chat = models.Chat - self.Chats = models.Chats - self.DocumentSummaries = models.DocumentSummaries - self.DocumentSummary = models.DocumentSummary - self.DocumentSummaryFile = models.DocumentSummaryFile - self.DocumentSummaryFiles = models.DocumentSummaryFiles - self.DocumentTypeFormation = models.DocumentTypeFormation - self.DocumentTypeFormations = models.DocumentTypeFormations - self.Encounter = models.Encounter - self.EncounterDisposition = models.EncounterDisposition - self.EncounterDispositionFormation = models.EncounterDispositionFormation - self.EncounterFormation = models.EncounterFormation - self.EncounterFormations = models.EncounterFormations - self.Encounters = models.Encounters - self.GoalFormation = models.GoalFormation - self.GoalFormations = models.GoalFormations - self.Patient = models.Patient - self.Patients = models.Patients - self.Schedules = models.Schedules - self.SearchChats = models.SearchChats - self.User = models.User - self.Users = models.Users - self.WorkHours = models.WorkHours - - for k, v in vars(self).items(): - try: - issubclass(v, (Collection, Resource)) - except TypeError: - # Failed because `issubclass` expects a class. - continue - - getattr(self, k)._client = self + _build_resources(self, "_client") def prepare_request(self, request): if request.json: diff --git a/welkin/models/__init__.py b/welkin/models/__init__.py index a0a5e7c..2f71492 100644 --- a/welkin/models/__init__.py +++ b/welkin/models/__init__.py @@ -16,26 +16,12 @@ DocumentSummaryFiles, ) from welkin.models.encounter import Encounter, EncounterDisposition, Encounters -from welkin.models.formation import ( - AssessmentFormation, - AssessmentFormations, - CDTFormation, - CDTFormations, - DocumentTypeFormation, - DocumentTypeFormations, - EncounterDispositionFormation, - EncounterFormation, - EncounterFormations, - GoalFormation, - GoalFormations, -) +from welkin.models.formation import Formation from welkin.models.patient import Patient, Patients from welkin.models.user import User, Users __all__ = [ "Assessment", - "AssessmentFormation", - "AssessmentFormations", "AssessmentRecord", "AssessmentRecordAnswers", "AssessmentRecords", @@ -45,8 +31,6 @@ "CarePlan", "CarePlanOverview", "CDT", - "CDTFormation", - "CDTFormations", "CDTs", "Chat", "Chats", @@ -54,16 +38,10 @@ "DocumentSummary", "DocumentSummaryFile", "DocumentSummaryFiles", - "DocumentTypeFormation", - "DocumentTypeFormations", "Encounter", "EncounterDisposition", - "EncounterDispositionFormation", - "EncounterFormation", - "EncounterFormations", "Encounters", - "GoalFormation", - "GoalFormations", + "Formation", "Patient", "Patients", "Schedules", diff --git a/welkin/models/formation.py b/welkin/models/formation.py index 6836a21..8b88294 100644 --- a/welkin/models/formation.py +++ b/welkin/models/formation.py @@ -2,117 +2,112 @@ from welkin.models.base import Collection, Resource from welkin.pagination import FormationIterator +from welkin.util import Target, _build_resources -class AssessmentFormation(Resource): +class FormationBase: + endpoint: str = None + + def __new__(cls, *args, **kwargs): + if not cls.endpoint: + raise AttributeError( + f"The `endpoint` attribute must be set on {cls.__name__}" + ) + + return super().__new__(cls) + + +class FormationResource(FormationBase, Resource): def get(self, *args, **kwargs): return super().get( - f"{self._client.instance}/formations/current/assessments/{self.name}", + f"{self._formation._base_path}/{self.endpoint}/{self.name}", *args, **kwargs, ) -class AssessmentFormations(Collection): - resource = AssessmentFormation +class FormationCollection(FormationBase, Collection): + resource = FormationResource iterator = FormationIterator def get(self, *args, **kwargs): return super().get( - f"{self._client.instance}/formations/current/assessments", + f"{self._formation._base_path}/{self.endpoint}", *args, **kwargs, ) -class CDTFormation(Resource): - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/cdts/{self.name}", - *args, - **kwargs, - ) +class Assessment(FormationResource): + endpoint = "assessments" -class CDTFormations(Collection): - resource = CDTFormation - iterator = FormationIterator +class Assessments(FormationCollection): + resource = Assessment + endpoint = "assessments" - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/cdts", - *args, - **kwargs, - ) +class CDT(FormationResource): + endpoint = "cdts" -class DocumentTypeFormation(Resource): - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/document-types/{self.name}", - *args, - **kwargs, - ) +class CDTs(FormationCollection): + resource = CDT + endpoint = "cdts" -class DocumentTypeFormations(Collection): - resource = DocumentTypeFormation - iterator = FormationIterator - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/document-types", - *args, - **kwargs, - ) +class DocumentType(FormationResource): + endpoint = "document-types" -class EncounterDispositionFormation(Resource): - def get(self, version: Union[int, str] = "current", *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/{version}/encounter-disposition/", - *args, - **kwargs, - ) +class DocumentTypes(FormationCollection): + resource = DocumentType + endpoint = "document-types" -class EncounterFormation(Resource): - def get(self, version: Union[int, str] = "current", *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/{version}/encounters/{self.name}", - *args, - **kwargs, - ) +class EncounterDisposition(FormationResource): + endpoint = "encounter-disposition" + def __init__(self): + super().__init__() -class EncounterFormations(Collection): - iterator = FormationIterator - resource = EncounterFormation + self.name = "" - def get(self, version: Union[int, str] = "current", *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/{version}/encounters", - *args, - **kwargs, - ) +class Encounter(FormationResource): + endpoint = "encounters" -class GoalFormation(Resource): - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/goal-templates/{self.name}", - *args, - **kwargs, - ) +class Encounters(FormationCollection): + resource = Encounter + endpoint = "encounters" -class GoalFormations(Collection): - resource = GoalFormation - iterator = FormationIterator - def get(self, *args, **kwargs): - return super().get( - f"{self._client.instance}/formations/current/goal-templates", - *args, - **kwargs, - ) +class Goal(FormationResource): + endpoint = "goal-templates" + + +class Goals(FormationCollection): + resource = Goal + endpoint = "goal-templates" + + +class Formation(Target): + Assessment = Assessment + Assessments = Assessments + CDT = CDT + CDTs = CDTs + DocumentType = DocumentType + DocumentTypes = DocumentTypes + Encounter = Encounter + EncounterDisposition = EncounterDisposition + Encounters = Encounters + Goal = Goal + Goals = Goals + + def __init__(self, version: Union[int, str] = "current"): + super().__init__() + + self._base_path = f"{self._client.instance}/formations/{version}" + + _build_resources(self, "_formation") diff --git a/welkin/util.py b/welkin/util.py index a2b0dcd..ed2764a 100644 --- a/welkin/util.py +++ b/welkin/util.py @@ -1,10 +1,43 @@ from datetime import date, datetime, timezone +from welkin.models.base import SchemaBase + # NOTE: `clean_request_payload` and `clean_request_params` are intentionally DRY # violations. The code may be the same, but they represent different knowledge. # the same goes for `clean_request_payload` and `clean_json_list` +class Target: + _client = None + + def __init__(self): + self._base_path = "" + _build_resources(self, "_client", self._client) + + +def _build_resources(instance: type, attribute_name: str, value: type = None) -> None: + """Add an attribute pointing to an instance for each resource. + + Args: + instance (type): _description_ + attribute_name (str): _description_ + value (type, optional): _description_. Defaults to None. + """ + if not value: + value = instance + + for attribute in dir(instance): + val = getattr(instance, attribute) + + try: + if not issubclass(val, (SchemaBase, Target)): + continue + except TypeError: + continue # Failed because `issubclass` expects a class. + + setattr(val, attribute_name, value) + + def clean_request_payload(payload: dict) -> dict: result = {} for k, v in payload.items(): From 85ffea0971facadea522dcabdc7b760fa84029ea Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Fri, 1 Sep 2023 15:47:14 -0700 Subject: [PATCH 13/17] Update author email --- welkin/__version__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/welkin/__version__.py b/welkin/__version__.py index 07f6ad1..7f03f83 100644 --- a/welkin/__version__.py +++ b/welkin/__version__.py @@ -6,6 +6,6 @@ __url__ = "https://github.com/Lightmatter/welkin-health" __version__ = "0.1.0" __author__ = "Sam Morgan" -__author_email__ = "sam@lightmatter.com" +__author_email__ = "sama4mail@gmail.com" __license__ = "GNU GPL 3.0" __copyright__ = "2022 Lightmatter" From 45df14be1c1dac273d559d9b5a2c02a9514bd909 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Fri, 1 Sep 2023 16:03:51 -0700 Subject: [PATCH 14/17] Update pyproject semver --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9027c41..03fd95c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "welkin" -version = "0.0.8" +version = "0.1.0" description = "Python Welkin Health API Wrapper." authors = ["Sam Morgan "] license = "GPL-3.0-or-later" From 23f8fe16e21e6bd0288765af5044af22ccde2e2f Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Fri, 1 Sep 2023 16:09:09 -0700 Subject: [PATCH 15/17] Add test to ensure versions match across files --- test/test_version.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 test/test_version.py diff --git a/test/test_version.py b/test/test_version.py new file mode 100644 index 0000000..4e40620 --- /dev/null +++ b/test/test_version.py @@ -0,0 +1,13 @@ +from pathlib import Path + +import tomli + +from welkin.__version__ import __version__ + +pyproject_path = Path(__file__).parent.parent / "pyproject.toml" + + +def test_version_match(): + with open(pyproject_path, "rb") as f: + pyproject_toml = tomli.load(f) + assert pyproject_toml["tool"]["poetry"]["version"] == __version__ From b49ead59c5c62add7a1c83ec801adfa0c1e818ef Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Fri, 1 Sep 2023 16:20:32 -0700 Subject: [PATCH 16/17] Add tomli to test requirements --- poetry.lock | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index a88ae82..dc1ddf1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1475,4 +1475,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "ce54c94097ec8d308f7edfe83cd0d9cafb053fd3f61af7aaf50a77e001cd3f92" +content-hash = "bc16e9c8d9b067e6cee6870a30473e74a8c641305f5da551b9157f96c1546bee" diff --git a/pyproject.toml b/pyproject.toml index 03fd95c..bf84e9c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,7 @@ pytest-cov = "^4.0.0" pytest-dotenv = "^0.5.2" pytest-vcr = "^1.0.2" pytest-xdist = "^3.2.1" +tomli = "^2.0.1" [tool.poetry.group.docs] optional = true From 13e19db7be15cf03ca442e8148defc829865cd37 Mon Sep 17 00:00:00 2001 From: Sam Morgan Date: Sat, 2 Sep 2023 12:16:06 -0700 Subject: [PATCH 17/17] Change pyproject author email --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bf84e9c..6eeb87b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "welkin" version = "0.1.0" description = "Python Welkin Health API Wrapper." -authors = ["Sam Morgan "] +authors = ["Sam Morgan "] license = "GPL-3.0-or-later" readme = "README.md" repository = "https://github.com/lightmatter/welkin-health"