Merge pull request #149 from sartography/feature/dynamic_enum_list
Feature/dynamic enum list
This commit is contained in:
commit
82e00b6d5e
|
@ -35,6 +35,7 @@
|
|||
"sha256:24dbaff8ce4f30566bb88976b398e8c4e77637171af3af6f1b9650f48890e60b",
|
||||
"sha256:bb68f8d2bced8f93ccfd07d96c689b716b3227720add971be980accfc2952139"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==2.6.0"
|
||||
},
|
||||
"aniso8601": {
|
||||
|
@ -49,6 +50,7 @@
|
|||
"sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c",
|
||||
"sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==19.3.0"
|
||||
},
|
||||
"babel": {
|
||||
|
@ -56,6 +58,7 @@
|
|||
"sha256:1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38",
|
||||
"sha256:d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.8.0"
|
||||
},
|
||||
"bcrypt": {
|
||||
|
@ -79,6 +82,7 @@
|
|||
"sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7",
|
||||
"sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==3.1.7"
|
||||
},
|
||||
"beautifulsoup4": {
|
||||
|
@ -107,6 +111,7 @@
|
|||
"sha256:ef17d7dffde7fc73ecab3a3b6389d93d3213bac53fa7f28e68e33647ad50b916",
|
||||
"sha256:fd77e4248bb1b7af5f7922dd8e81156f540306e3a5c4b1c24167c1f5f06025da"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==4.4.6"
|
||||
},
|
||||
"certifi": {
|
||||
|
@ -161,6 +166,7 @@
|
|||
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
|
||||
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==7.1.2"
|
||||
},
|
||||
"clickclick": {
|
||||
|
@ -182,6 +188,7 @@
|
|||
"sha256:2ca44140ee259b5e3d8aaf47c79c36a7ab0d5e94d70bd4105c03ede7a20ea5a1",
|
||||
"sha256:cffc044844040c7ce04e9acd1838b5f2e5fa3170182f6fda4d2ea8b0099dbadd"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==5.0.0"
|
||||
},
|
||||
"connexion": {
|
||||
|
@ -240,6 +247,7 @@
|
|||
"sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af",
|
||||
"sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==0.16"
|
||||
},
|
||||
"docxtpl": {
|
||||
|
@ -322,12 +330,14 @@
|
|||
"sha256:05b31d2034dd3f2a685cbbae4cfc4ed906b2a733cff7964ada450fd5e462b84e",
|
||||
"sha256:bfc7150eaf809b1c283879302f04c42791136060c6eeb12c0c6674fb1291fae5"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.4.4"
|
||||
},
|
||||
"future": {
|
||||
"hashes": [
|
||||
"sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.18.2"
|
||||
},
|
||||
"gunicorn": {
|
||||
|
@ -350,6 +360,7 @@
|
|||
"sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
|
||||
"sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.10"
|
||||
},
|
||||
"imagesize": {
|
||||
|
@ -357,6 +368,7 @@
|
|||
"sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1",
|
||||
"sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.2.0"
|
||||
},
|
||||
"importlib-metadata": {
|
||||
|
@ -372,6 +384,7 @@
|
|||
"sha256:88b101b2668a1d81d6d72d4c2018e53bc6c7fc544c987849da1c7f77545c3bc9",
|
||||
"sha256:f576e85132d34f5bf7df5183c2c6f94cfb32e528f53065345cf71329ba0b8924"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==0.5.0"
|
||||
},
|
||||
"itsdangerous": {
|
||||
|
@ -379,6 +392,7 @@
|
|||
"sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19",
|
||||
"sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"jdcal": {
|
||||
|
@ -393,6 +407,7 @@
|
|||
"sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0",
|
||||
"sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==2.11.2"
|
||||
},
|
||||
"jsonschema": {
|
||||
|
@ -407,12 +422,17 @@
|
|||
"sha256:be48cdffb54a2194d93ad6533d73f69408486483d189fe9f5990ee24255b0e0a",
|
||||
"sha256:ca1b45faac8c0b18493d02a8571792f3c40291cf2bcf1f55afed3d8f3aa7ba74"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==4.6.11"
|
||||
},
|
||||
"ldap3": {
|
||||
"hashes": [
|
||||
"sha256:17f04298b70bf7ecaa5db8a7d8622b5a962ef7fc2b245b2eea705ac1c24338c0",
|
||||
"sha256:81df4ac8b6df10fb1f05b17c18d0cb8c4c344d5a03083c382824960ed959cf5b"
|
||||
"sha256:298769ab0232b3a3efa1e84881096c24526fe37911c83a11285f222fe4975efd",
|
||||
"sha256:81df4ac8b6df10fb1f05b17c18d0cb8c4c344d5a03083c382824960ed959cf5b",
|
||||
"sha256:53aaae5bf14f3827c69600ddf4d61b88f49c055bb93060e9702c5bafd206c744",
|
||||
"sha256:4fd2db72d0412cc16ee86be01332095e86e361329c3579b314231eb2e56c7871",
|
||||
"sha256:52ab557b3c4908db4a90bea16731aa714b1b54e039b54fd4c4b83994c6c48c0c",
|
||||
"sha256:17f04298b70bf7ecaa5db8a7d8622b5a962ef7fc2b245b2eea705ac1c24338c0"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.7"
|
||||
|
@ -455,6 +475,7 @@
|
|||
"sha256:8195c8c1400ceb53496064314c6736719c6f25e7479cd24c77be3d9361cddc27",
|
||||
"sha256:93729a258e4ff0747c876bd9e20df1b9758028946e976324ccd2d68245c7b6a9"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.1.3"
|
||||
},
|
||||
"markdown": {
|
||||
|
@ -501,6 +522,7 @@
|
|||
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
|
||||
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"marshmallow": {
|
||||
|
@ -556,6 +578,7 @@
|
|||
"sha256:df1889701e2dfd8ba4dc9b1a010f0a60950077fb5242bb92c8b5c7f1a6f2668a",
|
||||
"sha256:fa1fe75b4a9e18b66ae7f0b122543c42debcf800aaafa0212aaff3ad273c2596"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.19.0"
|
||||
},
|
||||
"openapi-spec-validator": {
|
||||
|
@ -579,6 +602,7 @@
|
|||
"sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8",
|
||||
"sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==20.4"
|
||||
},
|
||||
"pandas": {
|
||||
|
@ -641,8 +665,19 @@
|
|||
},
|
||||
"pyasn1": {
|
||||
"hashes": [
|
||||
"sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7",
|
||||
"sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576",
|
||||
"sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8",
|
||||
"sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86",
|
||||
"sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba",
|
||||
"sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00",
|
||||
"sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2",
|
||||
"sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf",
|
||||
"sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359",
|
||||
"sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d",
|
||||
"sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"
|
||||
"sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3",
|
||||
"sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776",
|
||||
"sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12"
|
||||
],
|
||||
"version": "==0.4.8"
|
||||
},
|
||||
|
@ -651,6 +686,7 @@
|
|||
"sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0",
|
||||
"sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.20"
|
||||
},
|
||||
"pygments": {
|
||||
|
@ -658,6 +694,7 @@
|
|||
"sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44",
|
||||
"sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==2.6.1"
|
||||
},
|
||||
"pyjwt": {
|
||||
|
@ -673,6 +710,7 @@
|
|||
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
|
||||
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.4.7"
|
||||
},
|
||||
"pyrsistent": {
|
||||
|
@ -697,9 +735,11 @@
|
|||
},
|
||||
"python-editor": {
|
||||
"hashes": [
|
||||
"sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d",
|
||||
"sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8",
|
||||
"sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b",
|
||||
"sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8"
|
||||
"sha256:c3da2053dbab6b29c94e43c486ff67206eafbe7eb52dbec7390b5e2fb05aac77",
|
||||
"sha256:ea87e17f6ec459e780e4221f295411462e0d0810858e055fc514684350a2f522",
|
||||
"sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d"
|
||||
],
|
||||
"version": "==1.0.4"
|
||||
},
|
||||
|
@ -813,6 +853,7 @@
|
|||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"snowballstemmer": {
|
||||
|
@ -827,6 +868,7 @@
|
|||
"sha256:1634eea42ab371d3d346309b93df7870a88610f0725d47528be902a0d95ecc55",
|
||||
"sha256:a59dc181727e95d25f781f0eb4fd1825ff45590ec8ff49eadfd7f1a537cc0232"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==2.0.1"
|
||||
},
|
||||
"sphinx": {
|
||||
|
@ -842,6 +884,7 @@
|
|||
"sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a",
|
||||
"sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.0.2"
|
||||
},
|
||||
"sphinxcontrib-devhelp": {
|
||||
|
@ -849,6 +892,7 @@
|
|||
"sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e",
|
||||
"sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.0.2"
|
||||
},
|
||||
"sphinxcontrib-htmlhelp": {
|
||||
|
@ -856,6 +900,7 @@
|
|||
"sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f",
|
||||
"sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.0.3"
|
||||
},
|
||||
"sphinxcontrib-jsmath": {
|
||||
|
@ -863,6 +908,7 @@
|
|||
"sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178",
|
||||
"sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.0.1"
|
||||
},
|
||||
"sphinxcontrib-qthelp": {
|
||||
|
@ -870,6 +916,7 @@
|
|||
"sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72",
|
||||
"sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.0.3"
|
||||
},
|
||||
"sphinxcontrib-serializinghtml": {
|
||||
|
@ -877,6 +924,7 @@
|
|||
"sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc",
|
||||
"sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.1.4"
|
||||
},
|
||||
"spiffworkflow": {
|
||||
|
@ -915,6 +963,7 @@
|
|||
"sha256:f57be5673e12763dd400fea568608700a63ce1c6bd5bdbc3cc3a2c5fdb045274",
|
||||
"sha256:fc728ece3d5c772c196fd338a99798e7efac7a04f9cb6416299a3638ee9a94cd"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.3.18"
|
||||
},
|
||||
"swagger-ui-bundle": {
|
||||
|
@ -931,6 +980,7 @@
|
|||
"sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527",
|
||||
"sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
|
||||
"version": "==1.25.9"
|
||||
},
|
||||
"vine": {
|
||||
|
@ -938,6 +988,7 @@
|
|||
"sha256:133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87",
|
||||
"sha256:ea4947cc56d1fd6f2095c8d543ee25dad966f78692528e68b4fada11ba3f98af"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.3.0"
|
||||
},
|
||||
"waitress": {
|
||||
|
@ -945,6 +996,7 @@
|
|||
"sha256:1bb436508a7487ac6cb097ae7a7fe5413aefca610550baf58f0940e51ecfb261",
|
||||
"sha256:3d633e78149eb83b60a07dfabb35579c29aac2d24bb803c18b26fb2ab1a584db"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==1.4.4"
|
||||
},
|
||||
"webob": {
|
||||
|
@ -952,6 +1004,7 @@
|
|||
"sha256:a3c89a8e9ba0aeb17382836cdb73c516d0ecf6630ec40ec28288f3ed459ce87b",
|
||||
"sha256:aa3a917ed752ba3e0b242234b2a373f9c4e2a75d35291dcbe977649bd21fd108"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.8.6"
|
||||
},
|
||||
"webtest": {
|
||||
|
@ -998,6 +1051,7 @@
|
|||
"sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b",
|
||||
"sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.1.0"
|
||||
}
|
||||
},
|
||||
|
@ -1007,6 +1061,7 @@
|
|||
"sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c",
|
||||
"sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==19.3.0"
|
||||
},
|
||||
"coverage": {
|
||||
|
@ -1062,6 +1117,7 @@
|
|||
"sha256:68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5",
|
||||
"sha256:b78134b2063dd214000685165d81c154522c3ee0a1c0d4d113c80361c234c5a2"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==8.4.0"
|
||||
},
|
||||
"packaging": {
|
||||
|
@ -1069,6 +1125,7 @@
|
|||
"sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8",
|
||||
"sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==20.4"
|
||||
},
|
||||
"pbr": {
|
||||
|
@ -1084,6 +1141,7 @@
|
|||
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
|
||||
"sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.13.1"
|
||||
},
|
||||
"py": {
|
||||
|
@ -1091,6 +1149,7 @@
|
|||
"sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2",
|
||||
"sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.9.0"
|
||||
},
|
||||
"pyparsing": {
|
||||
|
@ -1098,6 +1157,7 @@
|
|||
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
|
||||
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.4.7"
|
||||
},
|
||||
"pytest": {
|
||||
|
@ -1113,6 +1173,7 @@
|
|||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"wcwidth": {
|
||||
|
@ -1127,6 +1188,7 @@
|
|||
"sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b",
|
||||
"sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.1.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ SQLALCHEMY_DATABASE_URI = environ.get(
|
|||
default="postgresql://%s:%s@%s:%s/%s" % (DB_USER, DB_PASSWORD, DB_HOST, DB_PORT, DB_NAME)
|
||||
)
|
||||
TOKEN_AUTH_TTL_HOURS = float(environ.get('TOKEN_AUTH_TTL_HOURS', default=24))
|
||||
TOKEN_AUTH_SECRET_KEY = environ.get('TOKEN_AUTH_SECRET_KEY', default="Shhhh!!! This is secret! And better darn well not show up in prod.")
|
||||
SECRET_KEY = environ.get('SECRET_KEY', default="Shhhh!!! This is secret! And better darn well not show up in prod.")
|
||||
FRONTEND_AUTH_CALLBACK = environ.get('FRONTEND_AUTH_CALLBACK', default="http://localhost:4200/session")
|
||||
SWAGGER_AUTH_KEY = environ.get('SWAGGER_AUTH_KEY', default="SWAGGER")
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ basedir = os.path.abspath(os.path.dirname(__file__))
|
|||
|
||||
NAME = "CR Connect Workflow"
|
||||
TESTING = True
|
||||
TOKEN_AUTH_SECRET_KEY = "Shhhh!!! This is secret! And better darn well not show up in prod."
|
||||
SECRET_KEY = "Shhhh!!! This is secret! And better darn well not show up in prod."
|
||||
|
||||
# This is here, for when we are running the E2E Tests in the frontend code bases.
|
||||
# which will set the TESTING envronment to true, causing this to execute, but we need
|
||||
|
|
|
@ -32,15 +32,36 @@ class NavigationItem(object):
|
|||
|
||||
class Task(object):
|
||||
|
||||
##########################################################################
|
||||
# Custom properties and validations defined in Camunda form fields #
|
||||
##########################################################################
|
||||
|
||||
# Repeating form section
|
||||
PROP_OPTIONS_REPEAT = "repeat"
|
||||
PROP_OPTIONS_FILE = "spreadsheet.name"
|
||||
PROP_OPTIONS_VALUE_COLUMN = "spreadsheet.value.column"
|
||||
PROP_OPTIONS_LABEL_COL = "spreadsheet.label.column"
|
||||
|
||||
# Read-only field
|
||||
PROP_OPTIONS_READ_ONLY = "read_only"
|
||||
|
||||
# LDAP lookup
|
||||
PROP_LDAP_LOOKUP = "ldap.lookup"
|
||||
VALIDATION_REQUIRED = "required"
|
||||
|
||||
# Autocomplete field
|
||||
FIELD_TYPE_AUTO_COMPLETE = "autocomplete"
|
||||
|
||||
# Required field
|
||||
VALIDATION_REQUIRED = "required"
|
||||
|
||||
# Enum field options values pulled from a spreadsheet
|
||||
PROP_OPTIONS_FILE_NAME = "spreadsheet.name"
|
||||
PROP_OPTIONS_FILE_VALUE_COLUMN = "spreadsheet.value.column"
|
||||
PROP_OPTIONS_FILE_LABEL_COLUMN = "spreadsheet.label.column"
|
||||
|
||||
# Enum field options values pulled from task data
|
||||
PROP_OPTIONS_DATA_NAME = "data.name"
|
||||
PROP_OPTIONS_DATA_VALUE_COLUMN = "data.value.column"
|
||||
PROP_OPTIONS_DATA_LABEL_COLUMN = "data.label.column"
|
||||
|
||||
##########################################################################
|
||||
|
||||
def __init__(self, id, name, title, type, state, form, documentation, data,
|
||||
multi_instance_type, multi_instance_count, multi_instance_index, process_name, properties):
|
||||
|
|
|
@ -144,7 +144,6 @@ class LookupFileModel(db.Model):
|
|||
"""Gives us a quick way to tell what kind of lookup is set on a form field.
|
||||
Connected to the file data model, so that if a new version of the same file is
|
||||
created, we can update the listing."""
|
||||
#fixme: What happens if they change the file associated with a lookup field?
|
||||
__tablename__ = 'lookup_file'
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
workflow_spec_id = db.Column(db.String)
|
||||
|
|
|
@ -35,7 +35,7 @@ class UserModel(db.Model):
|
|||
}
|
||||
return jwt.encode(
|
||||
payload,
|
||||
app.config.get('TOKEN_AUTH_SECRET_KEY'),
|
||||
app.config.get('SECRET_KEY'),
|
||||
algorithm='HS256',
|
||||
)
|
||||
|
||||
|
@ -47,7 +47,7 @@ class UserModel(db.Model):
|
|||
:return: integer|string
|
||||
"""
|
||||
try:
|
||||
payload = jwt.decode(auth_token, app.config.get('TOKEN_AUTH_SECRET_KEY'), algorithms='HS256')
|
||||
payload = jwt.decode(auth_token, app.config.get('SECRET_KEY'), algorithms='HS256')
|
||||
return payload
|
||||
except jwt.ExpiredSignatureError:
|
||||
raise ApiError('token_expired', 'The Authentication token you provided expired and must be renewed.')
|
||||
|
|
|
@ -4,7 +4,7 @@ from collections import OrderedDict
|
|||
|
||||
import pandas as pd
|
||||
from pandas import ExcelFile, np
|
||||
from sqlalchemy import func, desc
|
||||
from sqlalchemy import desc
|
||||
from sqlalchemy.sql.functions import GenericFunction
|
||||
|
||||
from crc import db
|
||||
|
@ -76,11 +76,12 @@ class LookupService(object):
|
|||
@staticmethod
|
||||
def create_lookup_model(workflow_model, field_id):
|
||||
"""
|
||||
This is all really expensive, but should happen just once (per file change).
|
||||
Checks to see if the options are provided in a separate lookup table associated with the
|
||||
workflow, and if so, assures that data exists in the database, and return a model than can be used
|
||||
to locate that data.
|
||||
Returns: an array of LookupData, suitable for returning to the api.
|
||||
This is all really expensive, but should happen just once (per file change).
|
||||
|
||||
Checks to see if the options are provided in a separate lookup table associated with the workflow, and if so,
|
||||
assures that data exists in the database, and return a model than can be used to locate that data.
|
||||
|
||||
Returns: an array of LookupData, suitable for returning to the API.
|
||||
"""
|
||||
processor = WorkflowProcessor(workflow_model) # VERY expensive, Ludicrous for lookup / type ahead
|
||||
spiff_task, field = processor.find_task_and_field_by_field_id(field_id)
|
||||
|
@ -92,21 +93,21 @@ class LookupService(object):
|
|||
for model in existing_models: # Do it one at a time to cause the required cascade of deletes.
|
||||
db.session.delete(model)
|
||||
|
||||
|
||||
if field.has_property(Task.PROP_OPTIONS_FILE):
|
||||
if not field.has_property(Task.PROP_OPTIONS_VALUE_COLUMN) or \
|
||||
not field.has_property(Task.PROP_OPTIONS_LABEL_COL):
|
||||
raise ApiError.from_task("invalid_emum",
|
||||
# Use the contents of a file to populate enum field options
|
||||
if field.has_property(Task.PROP_OPTIONS_FILE_NAME):
|
||||
if not (field.has_property(Task.PROP_OPTIONS_FILE_VALUE_COLUMN) or
|
||||
field.has_property(Task.PROP_OPTIONS_FILE_LABEL_COLUMN)):
|
||||
raise ApiError.from_task("invalid_enum",
|
||||
"For enumerations based on an xls file, you must include 3 properties: %s, "
|
||||
"%s, and %s" % (Task.PROP_OPTIONS_FILE,
|
||||
Task.PROP_OPTIONS_VALUE_COLUMN,
|
||||
Task.PROP_OPTIONS_LABEL_COL),
|
||||
"%s, and %s" % (Task.PROP_OPTIONS_FILE_NAME,
|
||||
Task.PROP_OPTIONS_FILE_VALUE_COLUMN,
|
||||
Task.PROP_OPTIONS_FILE_LABEL_COLUMN),
|
||||
task=spiff_task)
|
||||
|
||||
# Get the file data from the File Service
|
||||
file_name = field.get_property(Task.PROP_OPTIONS_FILE)
|
||||
value_column = field.get_property(Task.PROP_OPTIONS_VALUE_COLUMN)
|
||||
label_column = field.get_property(Task.PROP_OPTIONS_LABEL_COL)
|
||||
file_name = field.get_property(Task.PROP_OPTIONS_FILE_NAME)
|
||||
value_column = field.get_property(Task.PROP_OPTIONS_FILE_VALUE_COLUMN)
|
||||
label_column = field.get_property(Task.PROP_OPTIONS_FILE_LABEL_COLUMN)
|
||||
latest_files = FileService.get_spec_data_files(workflow_spec_id=workflow_model.workflow_spec_id,
|
||||
workflow_id=workflow_model.id,
|
||||
name=file_name)
|
||||
|
@ -118,14 +119,15 @@ class LookupService(object):
|
|||
lookup_model = LookupService.build_lookup_table(data_model, value_column, label_column,
|
||||
workflow_model.workflow_spec_id, field_id)
|
||||
|
||||
# Use the results of an LDAP request to populate enum field options
|
||||
elif field.has_property(Task.PROP_LDAP_LOOKUP):
|
||||
lookup_model = LookupFileModel(workflow_spec_id=workflow_model.workflow_spec_id,
|
||||
field_id=field_id,
|
||||
is_ldap=True)
|
||||
else:
|
||||
raise ApiError("unknown_lookup_option",
|
||||
"Lookup supports using spreadsheet options or ldap options, and neither "
|
||||
"was provided.")
|
||||
"Lookup supports using spreadsheet or LDAP options, "
|
||||
"and neither of those was provided.")
|
||||
db.session.add(lookup_model)
|
||||
db.session.commit()
|
||||
return lookup_model
|
||||
|
@ -140,11 +142,11 @@ class LookupService(object):
|
|||
df = xls.parse(xls.sheet_names[0]) # Currently we only look at the fist sheet.
|
||||
df = pd.DataFrame(df).replace({np.nan: None})
|
||||
if value_column not in df:
|
||||
raise ApiError("invalid_emum",
|
||||
raise ApiError("invalid_enum",
|
||||
"The file %s does not contain a column named % s" % (data_model.file_model.name,
|
||||
value_column))
|
||||
if label_column not in df:
|
||||
raise ApiError("invalid_emum",
|
||||
raise ApiError("invalid_enum",
|
||||
"The file %s does not contain a column named % s" % (data_model.file_model.name,
|
||||
label_column))
|
||||
|
||||
|
@ -211,3 +213,4 @@ class LookupService(object):
|
|||
"data": user
|
||||
})
|
||||
return user_list
|
||||
|
||||
|
|
|
@ -6,9 +6,11 @@ import random
|
|||
|
||||
import jinja2
|
||||
from SpiffWorkflow import Task as SpiffTask, WorkflowException
|
||||
from SpiffWorkflow.bpmn.specs.EndEvent import EndEvent
|
||||
from SpiffWorkflow.bpmn.specs.ManualTask import ManualTask
|
||||
from SpiffWorkflow.bpmn.specs.MultiInstanceTask import MultiInstanceTask
|
||||
from SpiffWorkflow.bpmn.specs.ScriptTask import ScriptTask
|
||||
from SpiffWorkflow.bpmn.specs.StartEvent import StartEvent
|
||||
from SpiffWorkflow.bpmn.specs.UserTask import UserTask
|
||||
from SpiffWorkflow.dmn.specs.BusinessRuleTask import BusinessRuleTask
|
||||
from SpiffWorkflow.specs import CancelTask, StartTask
|
||||
|
@ -94,7 +96,7 @@ class WorkflowService(object):
|
|||
for task in tasks:
|
||||
task_api = WorkflowService.spiff_task_to_api_task(
|
||||
task,
|
||||
add_docs_and_forms=True) # Assure we try to process the documenation, and raise those errors.
|
||||
add_docs_and_forms=True) # Assure we try to process the documentation, and raise those errors.
|
||||
WorkflowService.populate_form_with_random_data(task, task_api, required_only)
|
||||
task.complete()
|
||||
except WorkflowException as we:
|
||||
|
@ -273,20 +275,14 @@ class WorkflowService(object):
|
|||
def spiff_task_to_api_task(spiff_task, add_docs_and_forms=False):
|
||||
task_type = spiff_task.task_spec.__class__.__name__
|
||||
|
||||
if isinstance(spiff_task.task_spec, UserTask):
|
||||
task_type = "UserTask"
|
||||
elif isinstance(spiff_task.task_spec, ManualTask):
|
||||
task_type = "ManualTask"
|
||||
elif isinstance(spiff_task.task_spec, BusinessRuleTask):
|
||||
task_type = "BusinessRuleTask"
|
||||
elif isinstance(spiff_task.task_spec, CancelTask):
|
||||
task_type = "CancelTask"
|
||||
elif isinstance(spiff_task.task_spec, ScriptTask):
|
||||
task_type = "ScriptTask"
|
||||
elif isinstance(spiff_task.task_spec, StartTask):
|
||||
task_type = "StartTask"
|
||||
else:
|
||||
task_type = "NoneTask"
|
||||
task_types = [UserTask, ManualTask, BusinessRuleTask, CancelTask, ScriptTask, StartTask, EndEvent, StartEvent]
|
||||
|
||||
for t in task_types:
|
||||
if isinstance(spiff_task.task_spec, t):
|
||||
task_type = t.__name__
|
||||
break
|
||||
else:
|
||||
task_type = "NoneTask"
|
||||
|
||||
info = spiff_task.task_info()
|
||||
if info["is_looping"]:
|
||||
|
@ -394,16 +390,39 @@ class WorkflowService(object):
|
|||
# If this is an auto-complete field, do not populate options, a lookup will happen later.
|
||||
if field.type == Task.FIELD_TYPE_AUTO_COMPLETE:
|
||||
pass
|
||||
elif field.has_property(Task.PROP_OPTIONS_FILE):
|
||||
elif field.has_property(Task.PROP_OPTIONS_FILE_NAME):
|
||||
lookup_model = LookupService.get_lookup_model(spiff_task, field)
|
||||
data = db.session.query(LookupDataModel).filter(LookupDataModel.lookup_file_model == lookup_model).all()
|
||||
if not hasattr(field, 'options'):
|
||||
field.options = []
|
||||
for d in data:
|
||||
field.options.append({"id": d.value, "name": d.label, "data": d.data})
|
||||
|
||||
elif field.has_property(Task.PROP_OPTIONS_DATA_NAME):
|
||||
field.options = WorkflowService.get_options_from_task_data(spiff_task, field)
|
||||
return field
|
||||
|
||||
@staticmethod
|
||||
def get_options_from_task_data(spiff_task, field):
|
||||
if not (field.has_property(Task.PROP_OPTIONS_DATA_VALUE_COLUMN) or
|
||||
field.has_property(Task.PROP_OPTIONS_DATA_LABEL_COLUMN)):
|
||||
raise ApiError.from_task("invalid_enum",
|
||||
f"For enumerations based on task data, you must include 3 properties: "
|
||||
f"{Task.PROP_OPTIONS_DATA_NAME}, {Task.PROP_OPTIONS_DATA_VALUE_COLUMN}, "
|
||||
f"{Task.PROP_OPTIONS_DATA_LABEL_COLUMN}", task=spiff_task)
|
||||
prop = field.get_property(Task.PROP_OPTIONS_DATA_NAME)
|
||||
if prop not in spiff_task.data:
|
||||
raise ApiError.from_task("invalid_enum", f"For enumerations based on task data, task data must have "
|
||||
f"a property called {prop}", task=spiff_task)
|
||||
# Get the enum options from the task data
|
||||
data_model = spiff_task.data[prop]
|
||||
value_column = field.get_property(Task.PROP_OPTIONS_DATA_VALUE_COLUMN)
|
||||
label_column = field.get_property(Task.PROP_OPTIONS_DATA_LABEL_COLUMN)
|
||||
items = data_model.items() if isinstance(data_model, dict) else data_model
|
||||
options = []
|
||||
for item in items:
|
||||
options.append({"id": item[value_column], "name": item[label_column], "data": item})
|
||||
return options
|
||||
|
||||
@staticmethod
|
||||
def log_task_action(user_uid, workflow_model, spiff_task, action, version):
|
||||
task = WorkflowService.spiff_task_to_api_task(spiff_task)
|
||||
|
@ -467,7 +486,7 @@ class WorkflowService(object):
|
|||
|
||||
@staticmethod
|
||||
def extract_form_data(latest_data, task):
|
||||
"""Removes data from latest_data that would be added by the child task or any of it's children."""
|
||||
"""Removes data from latest_data that would be added by the child task or any of its children."""
|
||||
data = {}
|
||||
|
||||
if hasattr(task.task_spec, 'form'):
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1wv9t3c" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.3">
|
||||
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1wv9t3c" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.5.0">
|
||||
<bpmn:process id="Process_19ej1y2" name="Data Securty Plan" isExecutable="true">
|
||||
<bpmn:startEvent id="StartEvent_1co48s3">
|
||||
<bpmn:outgoing>SequenceFlow_100w7co</bpmn:outgoing>
|
||||
|
@ -10,45 +10,27 @@
|
|||
<camunda:formData>
|
||||
<camunda:formField id="HIPAA_Ids" label="HIPAA Identifiers" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="hipaa" />
|
||||
<camunda:property id="repeat" value="hipaa" />
|
||||
<camunda:property id="spreadsheet.name" value="HIPAA_Ids.xls" />
|
||||
<camunda:property id="spreadsheet.value.column" value="Value" />
|
||||
<camunda:property id="spreadsheet.label.column" value="Label" />
|
||||
<camunda:property id="repeat_button_label" value="Add HIPAA Id" />
|
||||
</camunda:properties>
|
||||
<camunda:validation>
|
||||
<camunda:constraint name="required" config="true" />
|
||||
</camunda:validation>
|
||||
<camunda:value id="HIPAA_Ids0" name="No HIPAA identifiers will be recorded as part of this research" />
|
||||
<camunda:value id="HIPAA_Ids1" name="1. Name - Highly Sensitive Data " />
|
||||
<camunda:value id="HIPAA_Ids2a" name="2a. Postal address includes street and/or PO Box, and town or city, state, and zip code - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids2b" name="2b. Postal address that includes only town or city, state, and/or zip code - Moderately Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids3" name="3. All date elements (except year) for dates related to an individual, e.g. service date" />
|
||||
<camunda:value id="HIPAA_Ids4" name="4. Telephone numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids5" name="5. Fax numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids6" name="6. Electronic mail addresses - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids7" name="7. Social Security number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids8" name="8. Medical Record number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids9" name="9. Health plan beneficiary numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids10" name="10. Account numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids11" name="11. Certificate/license numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids12" name="12. Vehicle identifiers and serial numbers, including license plate numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids13" name="13. Device identifiers and serial numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids14" name="14. Web Universal Resource Locators (URLs) - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids15" name="15. Internet Protocol (IP) address numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids16" name="16. Biometric identifiers, including finger and voice prints - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids17" name="17. Full face photographic images and any comparable images - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids18" name="18. Other unique number, characteristic, code related to an individual, e.g. initials" />
|
||||
</camunda:formField>
|
||||
<camunda:formField id="HIPPA_IdsDataQualifiers" label="Check each that apply:" type="enum">
|
||||
<camunda:formField id="HIPAA_IdsDataQualifiers" label="Check each that apply:" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="enum_type" value="checkbox" />
|
||||
<camunda:property id="group" value="hipaa" />
|
||||
<camunda:property id="repeat" value="hipaa" />
|
||||
<camunda:property id="hide_expression" value="console.log('this', this) || model.HIPAA_Ids === 'HIPAA_Ids0'" />
|
||||
<camunda:property id="hide_expression" value="model.HIPAA_Ids === 'HIPAA_Ids0'" />
|
||||
</camunda:properties>
|
||||
<camunda:validation>
|
||||
<camunda:constraint name="required" config="!(model.HIPAA_Ids === 'HIPAA_Ids0') || model.HIPAA_Ids == null" />
|
||||
</camunda:validation>
|
||||
<camunda:value id="OrigSource" name="Original source data collection (receive, collect, or record at UVa)" />
|
||||
<camunda:value id="ShortTerm" name="Store long term at UVa" />
|
||||
<camunda:value id="LongTerm" name="Store long term at UVa" />
|
||||
<camunda:value id="SendTransOutside" name="Send or transmit outside of UVA" />
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
|
@ -162,28 +144,10 @@
|
|||
<camunda:properties>
|
||||
<camunda:property id="enum_type" value="checkbox" />
|
||||
<camunda:property id="help" value="You may locate the server/drive name and path by taking the following steps:\n\n- Windows: Click your “computer icon”, right click on the Drive icon (e.g., F). Then click on ”properties”. The server/drive name and path will appear at the very top of the box.\n- If you need additional assistance, contact your department computer support or system administrator for assistance." />
|
||||
<camunda:property id="spreadsheet.name" value="HIPAA_Ids.xls" />
|
||||
<camunda:property id="spreadsheet.value.column" value="Value" />
|
||||
<camunda:property id="spreadsheet.label.column" value="Label" />
|
||||
</camunda:properties>
|
||||
<camunda:value id="domatlas" name="domatlas.eservices.virginia.edu" />
|
||||
<camunda:value id="dom-titan" name="dom-titan.eservices.virginia.edu" />
|
||||
<camunda:value id="elson1" name="elson1.studenthealth.virginia.edu" />
|
||||
<camunda:value id="es3" name="es3.eservices.virginia.edu" />
|
||||
<camunda:value id="gcrcserver" name="gcrcserver.itc.virginia.edu" />
|
||||
<camunda:value id="hscs-ss7" name="\\hscs-ss7" />
|
||||
<camunda:value id="hscs-ss8" name="\\hscs-ss8" />
|
||||
<camunda:value id="hscs-ss9" name="\\hscs-ss9" />
|
||||
<camunda:value id="hscs-ss10" name="\\hscs-ss10" />
|
||||
<camunda:value id="hscs-ss11" name="\\hscs-ss11" />
|
||||
<camunda:value id="hscs-ss12" name="\\hscs-ss12" />
|
||||
<camunda:value id="hscs-ss13" name="\\hscs-ss13" />
|
||||
<camunda:value id="hscs-share1" name="\\hscs-share1\" />
|
||||
<camunda:value id="hscs-share2" name="\\hscs-share2\" />
|
||||
<camunda:value id="hscs-share3" name="\\hscs-share3\" />
|
||||
<camunda:value id="radshare" name="\\radshare\" />
|
||||
<camunda:value id="upgusers" name="upgusers.hscs.virginia.edu" />
|
||||
<camunda:value id="Ivy" name="Ivy Secure Computing Platform/ Ivy Secure Cloud/Ivy Cloud" />
|
||||
<camunda:value id="SECURE" name="School of Nursing SECURE NET" />
|
||||
<camunda:value id="DropBoxSookasa" name="UVa HIT DropBox/Sookasa" />
|
||||
<camunda:value id="Qualtrics" name=" UVa Qualtrics HSD survey tool: https://virginiahsd.co1.qualtrics.com/ControlPanel/" />
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
</bpmn:extensionElements>
|
||||
|
@ -202,31 +166,14 @@
|
|||
<camunda:property id="hide_expression" value="!(model.CollStorUVaLocWebCloud)" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="CollStorUVaLocWebCloudHIPPA" label="Check all HIPAA Identifiers stored on a web based server, cloud server, and/or any non-centrally managed UVA server." type="enum">
|
||||
<camunda:formField id="CollStorUVaLocWebCloudHIPAAIds" label="Check all HIPAA Identifiers stored on a web based server, cloud server, and/or any non-centrally managed UVA server." type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="enum_type" value="checkbox" />
|
||||
<camunda:property id="hide_expression" value="!(model.CollStorUVaLocWebCloud)" />
|
||||
<camunda:property id="spreadsheet.name" value="HIPAA_Ids.xls" />
|
||||
<camunda:property id="spreadsheet.value.column" value="Value" />
|
||||
<camunda:property id="spreadsheet.label.column" value="Label" />
|
||||
</camunda:properties>
|
||||
<camunda:value id="HIPAA_Ids0" name="No HIPAA identifiers will be recorded as part of this research" />
|
||||
<camunda:value id="HIPAA_Ids1" name="1. Name - Highly Sensitive Data " />
|
||||
<camunda:value id="HIPAA_Ids2a" name="2a. Postal address includes street and/or PO Box, and town or city, state, and zip code - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids2b" name="2b. Postal address that includes only town or city, state, and/or zip code - Moderately Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids3" name="3. All date elements (except year) for dates related to an individual, e.g. service date" />
|
||||
<camunda:value id="HIPAA_Ids4" name="4. Telephone numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids5" name="5. Fax numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids6" name="6. Electronic mail addresses - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids7" name="7. Social Security number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids8" name="8. Medical Record number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids9" name="9. Health plan beneficiary numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids10" name="10. Account numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids11" name="11. Certificate/license numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids12" name="12. Vehicle identifiers and serial numbers, including license plate numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids13" name="13. Device identifiers and serial numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids14" name="14. Web Universal Resource Locators (URLs) - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids15" name="15. Internet Protocol (IP) address numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids16" name="16. Biometric identifiers, including finger and voice prints - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids17" name="17. Full face photographic images and any comparable images - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids18" name="18. Other unique number, characteristic, code related to an individual, e.g. initials" />
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
</bpmn:extensionElements>
|
||||
|
@ -253,9 +200,8 @@
|
|||
<bpmn:documentation>Answer the questions for each of the Individual Use Devices that you use to collect or store your data onto your individual use device during the course of your research. Do not select these items if they are only to be used to connect elsewhere (to the items you identified in Electronic Medical Record, UVA approved eCRF or clinical trials management system, UVA servers & websites, and Web-based server, cloud server, or any non-centrally managed server):</bpmn:documentation>
|
||||
<bpmn:extensionElements>
|
||||
<camunda:formData>
|
||||
<camunda:formField id="IUD_IndividualUseDevices" label="Individual use devices:" type="enum">
|
||||
<camunda:formField id="IUD" label="Individual use devices:" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
</camunda:properties>
|
||||
<camunda:validation>
|
||||
|
@ -276,95 +222,75 @@
|
|||
<camunda:value id="FitnessTrackers" name="Fitness Trackers" />
|
||||
<camunda:value id="Other" name="Other" />
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesOther" label="Since you selected "Other" above, please identify the device type:" type="textarea">
|
||||
<camunda:formField id="IUD_Other" label="Since you selected "Other" above, please identify the device type:" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices !== 'Other'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD !== 'Other'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesProcess" label="Please describe your process for collecting, storing and/or transmitting data on the Individual Use Devices you selected in earlier steps (phones, flash drives, CDs, etc.):" type="textarea">
|
||||
<camunda:formField id="IUD_Process" label="Please describe your process for collecting, storing and/or transmitting data on the Individual Use Devices you selected in earlier steps (phones, flash drives, CDs, etc.):" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_Devices == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesHIPPA_Ids" label="Check the HIPAA Identifiers stored with the data on this device (e.g. such as full-face picture or video):" type="enum">
|
||||
<camunda:formField id="IUD_HIPPA_Ids" label="Check the HIPAA Identifiers stored with the data on this device (e.g. such as full-face picture or video):" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="enum_type" value="checkbox" />
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
<camunda:property id="spreadsheet.name" value="HIPAA_Ids.xls" />
|
||||
<camunda:property id="spreadsheet.value.column" value="Value" />
|
||||
<camunda:property id="spreadsheet.label.column" value="Label" />
|
||||
</camunda:properties>
|
||||
<camunda:value id="HIPAA_Ids0" name="No HIPAA identifiers will be recorded as part of this research" />
|
||||
<camunda:value id="HIPAA_Ids1" name="1. Name - Highly Sensitive Data " />
|
||||
<camunda:value id="HIPAA_Ids2a" name="2a. Postal address includes street and/or PO Box, and town or city, state, and zip code - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids2b" name="2b. Postal address that includes only town or city, state, and/or zip code - Moderately Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids3" name="3. All date elements (except year) for dates related to an individual, e.g. service date" />
|
||||
<camunda:value id="HIPAA_Ids4" name="4. Telephone numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids5" name="5. Fax numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids6" name="6. Electronic mail addresses - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids7" name="7. Social Security number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids8" name="8. Medical Record number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids9" name="9. Health plan beneficiary numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids10" name="10. Account numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids11" name="11. Certificate/license numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids12" name="12. Vehicle identifiers and serial numbers, including license plate numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids13" name="13. Device identifiers and serial numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids14" name="14. Web Universal Resource Locators (URLs) - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids15" name="15. Internet Protocol (IP) address numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids16" name="16. Biometric identifiers, including finger and voice prints - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids17" name="17. Full face photographic images and any comparable images - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids18" name="18. Other unique number, characteristic, code related to an individual, e.g. initials" />
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesBackups" label="Describe any backups made of the data stored on the device. Please include the location & method of data transfer:" type="textarea">
|
||||
<camunda:formField id="IUD_Backups" label="Describe any backups made of the data stored on the device. Please include the location & method of data transfer:" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesDelete" label="After the information is transferred elsewhere, will you securely delete all the data from this device?" type="boolean">
|
||||
<camunda:formField id="IUD_HowLong" label="How long will the data remain on the individual-use device before being transferred?" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesAccessYes" label="If yes, describe:" type="textarea">
|
||||
<camunda:formField id="IUD_DeleteData" label="After the information is transferred elsewhere, will you securely delete all the data from this device?" type="boolean">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_Access" label="Will anyone other than the study team or sponsor/CRO have access to data on this device?" type="boolean">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_AccessYes" label="If yes, describe:" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="hide_expression" value="!(model.IUD_IndividualUseDevicesDelete) || model.IUD_IndividualUseDevicesDelete == null || model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD === 'None' || !model.IUD_Access" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesAccess" label="Will anyone other than the study team or sponsor/CRO have access to data on this device?" type="textarea">
|
||||
<camunda:formField id="IUD_Alternatives" label="Other storage alternatives that were considered and the reasons they are unworkable:" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesAlternatives" label="Other storage alternatives that were considered and the reasons they are unworkable:" type="textarea">
|
||||
<camunda:formField id="IUD_Justification" label="The justification for storage of these data on this individual use device is:" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="IUD_IndividualUseDevicesJustification" label="The justification for storage of these data on this individual use device is:" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="devices" />
|
||||
<camunda:property id="repeat" value="devices" />
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="hide_expression" value="model.IUD_IndividualUseDevices == 'None'" />
|
||||
<camunda:property id="hide_expression" value="model.IUD == 'None'" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
|
@ -372,7 +298,7 @@
|
|||
<bpmn:incoming>SequenceFlow_0nc6lcs</bpmn:incoming>
|
||||
<bpmn:outgoing>SequenceFlow_0gp2pjm</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="SequenceFlow_0gp2pjm" sourceRef="Task_EnterIndividualUseDevices" targetRef="Activity_1qbfs1w" />
|
||||
<bpmn:sequenceFlow id="SequenceFlow_0gp2pjm" sourceRef="Task_EnterIndividualUseDevices" targetRef="Task_EnterOutsideUVA" />
|
||||
<bpmn:sequenceFlow id="SequenceFlow_0mgwas4" sourceRef="Task_EnterOutsideUVA" targetRef="ExclusiveGateway_0pi0c2d" />
|
||||
<bpmn:sequenceFlow id="SequenceFlow_1i8e52t" sourceRef="ExclusiveGateway_0x3t2vl" targetRef="Task_EnterEmailMethods" />
|
||||
<bpmn:userTask id="Task_EnterOutsideUVA" name="Enter Outside of UVA" camunda:formKey="EnterOutsideUVa">
|
||||
|
@ -389,7 +315,7 @@ Indicate all the possible formats in which you will transmit your data outside o
|
|||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_0cpwkms</bpmn:incoming>
|
||||
<bpmn:incoming>SequenceFlow_0gp2pjm</bpmn:incoming>
|
||||
<bpmn:outgoing>SequenceFlow_0mgwas4</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:userTask id="Task_EnterEmailMethods" name="Enter Email Methods" camunda:formKey="EnterEmailMethods">
|
||||
|
@ -415,7 +341,6 @@ Indicate all the possible formats in which you will transmit your data outside o
|
|||
<camunda:formField id="EnterDataManagementWebwsiteServerDriveAck" label="I acknowledge that ANY electronic individual use devices used to connect to any servers/websites listed below are supported by UVA Health System IT." type="boolean">
|
||||
<camunda:properties>
|
||||
<camunda:property id="help" value="[Definition of electronic individual user devices](https://security.virginia.edu/individual%E2%80%93use-electronic-devices)" />
|
||||
<camunda:property id="group" value="DataSentSponsorCRO" />
|
||||
<camunda:property id="repeat" value="DataSentSponsorCRO" />
|
||||
</camunda:properties>
|
||||
<camunda:validation>
|
||||
|
@ -424,48 +349,27 @@ Indicate all the possible formats in which you will transmit your data outside o
|
|||
</camunda:formField>
|
||||
<camunda:formField id="EnterDataManagementHIPAA_Ids" label="HIPAA Identifiers" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="DataSentSponsorCRO" />
|
||||
<camunda:property id="repeat" value="DataSentSponsorCRO" />
|
||||
<camunda:property id="spreadsheet.name" value="HIPAA_Ids.xls" />
|
||||
<camunda:property id="spreadsheet.value.column" value="Value" />
|
||||
<camunda:property id="spreadsheet.label.column" value="Label" />
|
||||
</camunda:properties>
|
||||
<camunda:validation>
|
||||
<camunda:constraint name="required" config="true" />
|
||||
</camunda:validation>
|
||||
<camunda:value id="HIPAA_Ids0" name="No HIPAA identifiers will be recorded as part of this research" />
|
||||
<camunda:value id="HIPAA_Ids1" name="1. Name - Highly Sensitive Data " />
|
||||
<camunda:value id="HIPAA_Ids2a" name="2a. Postal address includes street and/or PO Box, and town or city, state, and zip code - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids2b" name="2b. Postal address that includes only town or city, state, and/or zip code - Moderately Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids3" name="3. All date elements (except year) for dates related to an individual, e.g. service date" />
|
||||
<camunda:value id="HIPAA_Ids4" name="4. Telephone numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids5" name="5. Fax numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids6" name="6. Electronic mail addresses - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids7" name="7. Social Security number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids8" name="8. Medical Record number - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids9" name="9. Health plan beneficiary numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids10" name="10. Account numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids11" name="11. Certificate/license numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids12" name="12. Vehicle identifiers and serial numbers, including license plate numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids13" name="13. Device identifiers and serial numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids14" name="14. Web Universal Resource Locators (URLs) - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids15" name="15. Internet Protocol (IP) address numbers - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids16" name="16. Biometric identifiers, including finger and voice prints - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids17" name="17. Full face photographic images and any comparable images - Highly Sensitive Data" />
|
||||
<camunda:value id="HIPAA_Ids18" name="18. Other unique number, characteristic, code related to an individual, e.g. initials" />
|
||||
</camunda:formField>
|
||||
<camunda:formField id="EnterDataManagementSharingContract" label="If sharing data with anyone outside of UVA, do you confirm that you will obtain a contract with them via the School of Medicine Office of Grants and Contracts (OGC) or the Office of Sponsored Programs (OSP)?" type="boolean">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="DataSentSponsorCRO" />
|
||||
<camunda:property id="repeat" value="DataSentSponsorCRO" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="EnterDataManagementWebsiteServerDriveEncrypted" label="Data will be sent and stored in an encrypted fashion (e.g. will only be shared and via Secure FX, Secure FTP, HTTPS, PGP) and the server/drive is configured to store data regulated by HIPAA" type="boolean">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="DataSentSponsorCRO" />
|
||||
<camunda:property id="repeat" value="DataSentSponsorCRO" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="EnterDataManagementWebsiteServerDriveURL" label="Name (URL) of website (e.g. https://remote.sponsor.com/project name)" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="group" value="DataSentSponsorCRO" />
|
||||
<camunda:property id="repeat" value="DataSentSponsorCRO" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
|
@ -498,7 +402,7 @@ Indicate all the possible formats in which you will transmit your data outside o
|
|||
</camunda:formField>
|
||||
<camunda:formField id="DataTransmissionMethodEncrypted" label="Individual Use Devices" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="enum_type" value="checkbox" />
|
||||
<camunda:property id="enum_type" value="radio" />
|
||||
<camunda:property id="markdown_description" value="**Note:** Examples of individual use devices: CD, thumb drive, etc." />
|
||||
</camunda:properties>
|
||||
<camunda:value id="Yes" name="Yes, individual use devices will be shipped using a trackable method with data encrypted and password to the encrypted data transmitted separately" />
|
||||
|
@ -506,7 +410,7 @@ Indicate all the possible formats in which you will transmit your data outside o
|
|||
</camunda:formField>
|
||||
<camunda:formField id="DataTransmissionMethodFaxed" label="Faxed" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="enum_type" value="checkbox" />
|
||||
<camunda:property id="enum_type" value="radio" />
|
||||
<camunda:property id="markdown_description" value="**Note:** By checking this option, you are also confirming you will verify FAX numbers before faxing and use FAX cover sheet with a confidentiality statement." />
|
||||
</camunda:properties>
|
||||
<camunda:value id="Yes" name="Yes, data wile be faxed to a receiving machine in a restricted-access location with the intended recipient is clearly indicated, alerted to the pending transmission and available to pick up immediately." />
|
||||
|
@ -518,6 +422,7 @@ Indicate all the possible formats in which you will transmit your data outside o
|
|||
<bpmn:outgoing>SequenceFlow_0lere0k</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:endEvent id="EndEvent_151cj59">
|
||||
<bpmn:documentation>Done message</bpmn:documentation>
|
||||
<bpmn:incoming>SequenceFlow_16kyite</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:exclusiveGateway id="ExclusiveGateway_0pi0c2d" name="Outside of UVa?">
|
||||
|
@ -568,7 +473,10 @@ Process: The Study Team will answer the questions in this section to create the
|
|||
|
||||
How to The Data Security Plan is auto-generated based on your answers on this Step. You can save your information here and check the outcomes on the Data Security Plan Upload Step at any time.
|
||||
|
||||
Submit the step only when you are ready. After you "Submit" the step, the information will not be available for editing.</bpmn:documentation>
|
||||
Submit the step only when you are ready. After you "Submit" the step, the information will not be available for editing.
|
||||
|
||||
|
||||
# test</bpmn:documentation>
|
||||
<bpmn:extensionElements>
|
||||
<camunda:formData>
|
||||
<camunda:formField id="FormField_23d42bc" label="asdg" type="boolean" />
|
||||
|
@ -623,339 +531,222 @@ Indicate all the possible formats in which you will collect or receive your orig
|
|||
<bpmn:incoming>SequenceFlow_0blyor8</bpmn:incoming>
|
||||
<bpmn:outgoing>SequenceFlow_1oq4w2h</bpmn:outgoing>
|
||||
</bpmn:manualTask>
|
||||
<bpmn:task id="Activity_1qbfs1w" name="Enter Device Details">
|
||||
<bpmn:incoming>SequenceFlow_0gp2pjm</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0cpwkms</bpmn:outgoing>
|
||||
<bpmn:multiInstanceLoopCharacteristics />
|
||||
</bpmn:task>
|
||||
<bpmn:sequenceFlow id="Flow_0cpwkms" sourceRef="Activity_1qbfs1w" targetRef="Task_EnterOutsideUVA" />
|
||||
<bpmn:textAnnotation id="TextAnnotation_190dbhy">
|
||||
<bpmn:text>> Instructions
|
||||
o Hippa Instructions
|
||||
o Hippa Indentifiers
|
||||
o Vuew Definitions and Instructions
|
||||
o Paper Documents
|
||||
o Emailed to UVA Personnel
|
||||
o EMC (EPIC)
|
||||
o UVA Approvled eCRF
|
||||
o UVA Servers
|
||||
o Web or Cloud Server
|
||||
o Individual Use Devices
|
||||
o Device Details
|
||||
0 Outside of UVA
|
||||
|
||||
o Outside of UVA?
|
||||
o Yes
|
||||
o Email Methods
|
||||
o Data Management
|
||||
o Transmission Method
|
||||
o Generate DSP
|
||||
o No
|
||||
o Generate DSP</bpmn:text>
|
||||
</bpmn:textAnnotation>
|
||||
<bpmn:association id="Association_1nrg5es" sourceRef="Task_0q6ir2l" targetRef="TextAnnotation_190dbhy" />
|
||||
<bpmn:textAnnotation id="TextAnnotation_0l6dohi">
|
||||
<bpmn:text>* Instructions
|
||||
* Hippa Instructions
|
||||
* Hippa Indentifiers
|
||||
o Vuew Definitions and Instructions
|
||||
>> Paper Documents
|
||||
> Emailed to UVA Personnel
|
||||
> EMC (EPIC)
|
||||
> UVA Approvled eCRF
|
||||
> UVA Servers
|
||||
> Web or Cloud Server
|
||||
o Individual Use Devices
|
||||
o Device Details
|
||||
o Outside of UVA
|
||||
|
||||
o Outside of UVA?
|
||||
o Yes
|
||||
o Email Methods
|
||||
o Data Management
|
||||
o Transmission Method
|
||||
o Generate DSP
|
||||
o No
|
||||
o Generate DSP</bpmn:text>
|
||||
</bpmn:textAnnotation>
|
||||
<bpmn:association id="Association_0ykpfju" sourceRef="Task_EnterPaperDocuments" targetRef="TextAnnotation_0l6dohi" />
|
||||
<bpmn:textAnnotation id="TextAnnotation_0tpe506">
|
||||
<bpmn:text>* Instructions
|
||||
* Hippa Instructions
|
||||
* Hippa Indentifiers
|
||||
* View Definitions and Instructions
|
||||
|
||||
|
||||
* Paper Documents (Parallel creates spaces)
|
||||
* Emailed to UVA Personnel
|
||||
* EMC (EPIC)
|
||||
* UVA Approvled eCRF
|
||||
* UVA Servers
|
||||
* Web or Cloud Server
|
||||
* Individual Use Devices
|
||||
|
||||
o Device Details (MultiInstance Indents, Parallel creates spaces))
|
||||
> Desktop
|
||||
>> Laptop
|
||||
> Cell Phone
|
||||
> Other
|
||||
|
||||
o Outside of UVA
|
||||
|
||||
o Outside of UVA?
|
||||
o Yes
|
||||
o Email Methods
|
||||
o Data Management
|
||||
o Transmission Method
|
||||
o Generate DSP
|
||||
o No
|
||||
o Generate DSP</bpmn:text>
|
||||
</bpmn:textAnnotation>
|
||||
<bpmn:association id="Association_01x19xx" sourceRef="Activity_1qbfs1w" targetRef="TextAnnotation_0tpe506" />
|
||||
</bpmn:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_19ej1y2">
|
||||
<bpmndi:BPMNShape id="TextAnnotation_0l6dohi_di" bpmnElement="TextAnnotation_0l6dohi">
|
||||
<dc:Bounds x="1200" y="80" width="283.5273279352227" height="309.04183535762485" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="TextAnnotation_190dbhy_di" bpmnElement="TextAnnotation_190dbhy">
|
||||
<dc:Bounds x="190" y="150" width="237.9175101214575" height="309.04183535762485" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="TextAnnotation_0tpe506_di" bpmnElement="TextAnnotation_0tpe506">
|
||||
<dc:Bounds x="1240" y="820" width="370" height="442" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_16kyite_di" bpmnElement="SequenceFlow_16kyite">
|
||||
<di:waypoint x="2240" y="660" />
|
||||
<di:waypoint x="2322" y="660" />
|
||||
<di:waypoint x="2240" y="390" />
|
||||
<di:waypoint x="2322" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0t6xl9i_di" bpmnElement="SequenceFlow_0t6xl9i">
|
||||
<di:waypoint x="1620" y="685" />
|
||||
<di:waypoint x="1620" y="910" />
|
||||
<di:waypoint x="2190" y="910" />
|
||||
<di:waypoint x="2190" y="700" />
|
||||
<di:waypoint x="1620" y="415" />
|
||||
<di:waypoint x="1620" y="640" />
|
||||
<di:waypoint x="2190" y="640" />
|
||||
<di:waypoint x="2190" y="430" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0k2r83n_di" bpmnElement="SequenceFlow_0k2r83n">
|
||||
<di:waypoint x="2075" y="660" />
|
||||
<di:waypoint x="2140" y="660" />
|
||||
<di:waypoint x="2075" y="390" />
|
||||
<di:waypoint x="2140" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0blyor8_di" bpmnElement="SequenceFlow_0blyor8">
|
||||
<di:waypoint x="665" y="660" />
|
||||
<di:waypoint x="717" y="660" />
|
||||
<di:waypoint x="660" y="390" />
|
||||
<di:waypoint x="717" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0jyty9m_di" bpmnElement="SequenceFlow_0jyty9m">
|
||||
<di:waypoint x="498" y="660" />
|
||||
<di:waypoint x="565" y="660" />
|
||||
<di:waypoint x="498" y="390" />
|
||||
<di:waypoint x="560" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0m2op9s_di" bpmnElement="SequenceFlow_0m2op9s">
|
||||
<di:waypoint x="351" y="660" />
|
||||
<di:waypoint x="398" y="660" />
|
||||
<di:waypoint x="351" y="390" />
|
||||
<di:waypoint x="398" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1oq4w2h_di" bpmnElement="SequenceFlow_1oq4w2h">
|
||||
<di:waypoint x="817" y="660" />
|
||||
<di:waypoint x="875" y="660" />
|
||||
<di:waypoint x="817" y="390" />
|
||||
<di:waypoint x="875" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_100w7co_di" bpmnElement="SequenceFlow_100w7co">
|
||||
<di:waypoint x="191" y="660" />
|
||||
<di:waypoint x="251" y="660" />
|
||||
<di:waypoint x="178" y="390" />
|
||||
<di:waypoint x="251" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_01hl869_di" bpmnElement="SequenceFlow_01hl869">
|
||||
<di:waypoint x="1645" y="660" />
|
||||
<di:waypoint x="1725" y="660" />
|
||||
<di:waypoint x="1645" y="390" />
|
||||
<di:waypoint x="1725" y="390" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="1676" y="642" width="19" height="14" />
|
||||
<dc:Bounds x="1677" y="372" width="18" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0lere0k_di" bpmnElement="SequenceFlow_0lere0k">
|
||||
<di:waypoint x="1950" y="800" />
|
||||
<di:waypoint x="2050" y="800" />
|
||||
<di:waypoint x="2050" y="685" />
|
||||
<di:waypoint x="1950" y="530" />
|
||||
<di:waypoint x="2050" y="530" />
|
||||
<di:waypoint x="2050" y="415" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0uewki3_di" bpmnElement="SequenceFlow_0uewki3">
|
||||
<di:waypoint x="1950" y="520" />
|
||||
<di:waypoint x="2050" y="520" />
|
||||
<di:waypoint x="2050" y="635" />
|
||||
<di:waypoint x="1950" y="250" />
|
||||
<di:waypoint x="2050" y="250" />
|
||||
<di:waypoint x="2050" y="365" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_08rwbhm_di" bpmnElement="SequenceFlow_08rwbhm">
|
||||
<di:waypoint x="1950" y="660" />
|
||||
<di:waypoint x="2025" y="660" />
|
||||
<di:waypoint x="1950" y="390" />
|
||||
<di:waypoint x="2025" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1mnmo6p_di" bpmnElement="SequenceFlow_1mnmo6p">
|
||||
<di:waypoint x="1750" y="685" />
|
||||
<di:waypoint x="1750" y="800" />
|
||||
<di:waypoint x="1850" y="800" />
|
||||
<di:waypoint x="1750" y="415" />
|
||||
<di:waypoint x="1750" y="530" />
|
||||
<di:waypoint x="1850" y="530" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_12bv2i4_di" bpmnElement="SequenceFlow_12bv2i4">
|
||||
<di:waypoint x="1775" y="660" />
|
||||
<di:waypoint x="1850" y="660" />
|
||||
<di:waypoint x="1775" y="390" />
|
||||
<di:waypoint x="1850" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1i8e52t_di" bpmnElement="SequenceFlow_1i8e52t">
|
||||
<di:waypoint x="1750" y="635" />
|
||||
<di:waypoint x="1750" y="520" />
|
||||
<di:waypoint x="1850" y="520" />
|
||||
<di:waypoint x="1750" y="365" />
|
||||
<di:waypoint x="1750" y="250" />
|
||||
<di:waypoint x="1850" y="250" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0mgwas4_di" bpmnElement="SequenceFlow_0mgwas4">
|
||||
<di:waypoint x="1570" y="660" />
|
||||
<di:waypoint x="1595" y="660" />
|
||||
<di:waypoint x="1530" y="390" />
|
||||
<di:waypoint x="1595" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0gp2pjm_di" bpmnElement="SequenceFlow_0gp2pjm">
|
||||
<di:waypoint x="1300" y="660" />
|
||||
<di:waypoint x="1330" y="660" />
|
||||
<di:waypoint x="1360" y="390" />
|
||||
<di:waypoint x="1430" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0nc6lcs_di" bpmnElement="SequenceFlow_0nc6lcs">
|
||||
<di:waypoint x="1185" y="660" />
|
||||
<di:waypoint x="1200" y="660" />
|
||||
<di:waypoint x="1185" y="390" />
|
||||
<di:waypoint x="1260" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_10fsxk4_di" bpmnElement="SequenceFlow_10fsxk4">
|
||||
<di:waypoint x="1080" y="910" />
|
||||
<di:waypoint x="1160" y="910" />
|
||||
<di:waypoint x="1160" y="685" />
|
||||
<di:waypoint x="1080" y="640" />
|
||||
<di:waypoint x="1160" y="640" />
|
||||
<di:waypoint x="1160" y="415" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1xp62py_di" bpmnElement="SequenceFlow_1xp62py">
|
||||
<di:waypoint x="1080" y="810" />
|
||||
<di:waypoint x="1160" y="810" />
|
||||
<di:waypoint x="1160" y="685" />
|
||||
<di:waypoint x="1080" y="540" />
|
||||
<di:waypoint x="1160" y="540" />
|
||||
<di:waypoint x="1160" y="415" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1agmshr_di" bpmnElement="SequenceFlow_1agmshr">
|
||||
<di:waypoint x="1080" y="710" />
|
||||
<di:waypoint x="1160" y="710" />
|
||||
<di:waypoint x="1160" y="685" />
|
||||
<di:waypoint x="1080" y="440" />
|
||||
<di:waypoint x="1160" y="440" />
|
||||
<di:waypoint x="1160" y="415" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_12cos7w_di" bpmnElement="SequenceFlow_12cos7w">
|
||||
<di:waypoint x="1080" y="490" />
|
||||
<di:waypoint x="1160" y="490" />
|
||||
<di:waypoint x="1160" y="635" />
|
||||
<di:waypoint x="1080" y="220" />
|
||||
<di:waypoint x="1160" y="220" />
|
||||
<di:waypoint x="1160" y="365" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1q6gf6w_di" bpmnElement="SequenceFlow_1q6gf6w">
|
||||
<di:waypoint x="1080" y="390" />
|
||||
<di:waypoint x="1160" y="390" />
|
||||
<di:waypoint x="1160" y="635" />
|
||||
<di:waypoint x="1080" y="120" />
|
||||
<di:waypoint x="1160" y="120" />
|
||||
<di:waypoint x="1160" y="365" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0z10m1d_di" bpmnElement="SequenceFlow_0z10m1d">
|
||||
<di:waypoint x="1080" y="590" />
|
||||
<di:waypoint x="1160" y="590" />
|
||||
<di:waypoint x="1160" y="635" />
|
||||
<di:waypoint x="1080" y="320" />
|
||||
<di:waypoint x="1160" y="320" />
|
||||
<di:waypoint x="1160" y="365" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0obqjjx_di" bpmnElement="SequenceFlow_0obqjjx">
|
||||
<di:waypoint x="900" y="685" />
|
||||
<di:waypoint x="900" y="910" />
|
||||
<di:waypoint x="980" y="910" />
|
||||
<di:waypoint x="900" y="415" />
|
||||
<di:waypoint x="900" y="640" />
|
||||
<di:waypoint x="980" y="640" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0ng3fm8_di" bpmnElement="SequenceFlow_0ng3fm8">
|
||||
<di:waypoint x="900" y="685" />
|
||||
<di:waypoint x="900" y="810" />
|
||||
<di:waypoint x="980" y="810" />
|
||||
<di:waypoint x="900" y="415" />
|
||||
<di:waypoint x="900" y="540" />
|
||||
<di:waypoint x="980" y="540" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0pw57x9_di" bpmnElement="SequenceFlow_0pw57x9">
|
||||
<di:waypoint x="900" y="685" />
|
||||
<di:waypoint x="900" y="710" />
|
||||
<di:waypoint x="980" y="710" />
|
||||
<di:waypoint x="900" y="415" />
|
||||
<di:waypoint x="900" y="440" />
|
||||
<di:waypoint x="980" y="440" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_10g92nf_di" bpmnElement="SequenceFlow_10g92nf">
|
||||
<di:waypoint x="900" y="635" />
|
||||
<di:waypoint x="900" y="590" />
|
||||
<di:waypoint x="980" y="590" />
|
||||
<di:waypoint x="900" y="365" />
|
||||
<di:waypoint x="900" y="320" />
|
||||
<di:waypoint x="980" y="320" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_084dyht_di" bpmnElement="SequenceFlow_084dyht">
|
||||
<di:waypoint x="900" y="635" />
|
||||
<di:waypoint x="900" y="490" />
|
||||
<di:waypoint x="980" y="490" />
|
||||
<di:waypoint x="900" y="365" />
|
||||
<di:waypoint x="900" y="220" />
|
||||
<di:waypoint x="980" y="220" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_1i6ac9a_di" bpmnElement="SequenceFlow_1i6ac9a">
|
||||
<di:waypoint x="900" y="635" />
|
||||
<di:waypoint x="900" y="390" />
|
||||
<di:waypoint x="980" y="390" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0cpwkms_di" bpmnElement="Flow_0cpwkms">
|
||||
<di:waypoint x="1430" y="660" />
|
||||
<di:waypoint x="1470" y="660" />
|
||||
<di:waypoint x="900" y="365" />
|
||||
<di:waypoint x="900" y="120" />
|
||||
<di:waypoint x="980" y="120" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="StartEvent_1co48s3_di" bpmnElement="StartEvent_1co48s3">
|
||||
<dc:Bounds x="155" y="642" width="36" height="36" />
|
||||
<dc:Bounds x="142" y="372" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_16imtaa_di" bpmnElement="Task_EnterHIPAAIdentifiers">
|
||||
<dc:Bounds x="565" y="620" width="100" height="80" />
|
||||
<dc:Bounds x="560" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ParallelGateway_03qblyb_di" bpmnElement="ExclusiveGateway_0b16kmf">
|
||||
<dc:Bounds x="875" y="635" width="50" height="50" />
|
||||
<dc:Bounds x="875" y="365" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_1wsga3m_di" bpmnElement="Task_EnterPaperDocuments">
|
||||
<dc:Bounds x="980" y="350" width="100" height="80" />
|
||||
<dc:Bounds x="980" y="80" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0o1xjub_di" bpmnElement="Task_EnterEmailedUVAPersonnel">
|
||||
<dc:Bounds x="980" y="450" width="100" height="80" />
|
||||
<dc:Bounds x="980" y="180" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_1gnbchf_di" bpmnElement="Task_EnterEMR">
|
||||
<dc:Bounds x="980" y="550" width="100" height="80" />
|
||||
<dc:Bounds x="980" y="280" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0a4bj92_di" bpmnElement="Task_EnterUVAApprovedECRF">
|
||||
<dc:Bounds x="980" y="670" width="100" height="80" />
|
||||
<dc:Bounds x="980" y="400" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_1f2b80a_di" bpmnElement="Task_EnterUVaServersWebsites">
|
||||
<dc:Bounds x="980" y="500" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0n3jbd7_di" bpmnElement="Task_EnterWebCloudServer">
|
||||
<dc:Bounds x="980" y="600" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ParallelGateway_0zl5t7b_di" bpmnElement="ExclusiveGateway_06kvl84">
|
||||
<dc:Bounds x="1135" y="635" width="50" height="50" />
|
||||
<dc:Bounds x="1135" y="365" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0q8o038_di" bpmnElement="Task_EnterIndividualUseDevices">
|
||||
<dc:Bounds x="1260" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_10x8kgc_di" bpmnElement="Task_EnterOutsideUVA">
|
||||
<dc:Bounds x="1430" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_1x8azom_di" bpmnElement="Task_EnterEmailMethods">
|
||||
<dc:Bounds x="1850" y="480" width="100" height="80" />
|
||||
<dc:Bounds x="1850" y="210" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_1r640re_di" bpmnElement="Task_EnterDataManagement">
|
||||
<dc:Bounds x="1850" y="620" width="100" height="80" />
|
||||
<dc:Bounds x="1850" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ParallelGateway_0cignbh_di" bpmnElement="ExclusiveGateway_1lpm3pa">
|
||||
<dc:Bounds x="2025" y="635" width="50" height="50" />
|
||||
<dc:Bounds x="2025" y="365" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0ns9m8t_di" bpmnElement="Task_EnterTransmissionMethod">
|
||||
<dc:Bounds x="1850" y="760" width="100" height="80" />
|
||||
<dc:Bounds x="1850" y="490" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="EndEvent_151cj59_di" bpmnElement="EndEvent_151cj59">
|
||||
<dc:Bounds x="2322" y="642" width="36" height="36" />
|
||||
<dc:Bounds x="2322" y="372" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ExclusiveGateway_0pi0c2d_di" bpmnElement="ExclusiveGateway_0pi0c2d" isMarkerVisible="true">
|
||||
<dc:Bounds x="1595" y="635" width="50" height="50" />
|
||||
<dc:Bounds x="1595" y="365" width="50" height="50" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="1580" y="611" width="80" height="14" />
|
||||
<dc:Bounds x="1580" y="341" width="80" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ParallelGateway_1284xgu_di" bpmnElement="ExclusiveGateway_0x3t2vl">
|
||||
<dc:Bounds x="1725" y="635" width="50" height="50" />
|
||||
<dc:Bounds x="1725" y="365" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ScriptTask_1616pnb_di" bpmnElement="Task_1ypw8ge">
|
||||
<dc:Bounds x="2140" y="620" width="100" height="80" />
|
||||
<dc:Bounds x="2140" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1l6rjbr_di" bpmnElement="Task_0q6ir2l">
|
||||
<dc:Bounds x="251" y="620" width="100" height="80" />
|
||||
<dc:Bounds x="251" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_11u7de2_di" bpmnElement="Task_0uotpzg">
|
||||
<dc:Bounds x="398" y="620" width="100" height="80" />
|
||||
<dc:Bounds x="398" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_0nfmn0k_di" bpmnElement="Task_196zozc">
|
||||
<dc:Bounds x="717" y="620" width="100" height="80" />
|
||||
<dc:Bounds x="717" y="350" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0q8o038_di" bpmnElement="Task_EnterIndividualUseDevices">
|
||||
<dc:Bounds x="1200" y="620" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_10x8kgc_di" bpmnElement="Task_EnterOutsideUVA">
|
||||
<dc:Bounds x="1470" y="620" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1qbfs1w_di" bpmnElement="Activity_1qbfs1w">
|
||||
<dc:Bounds x="1330" y="620" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_1f2b80a_di" bpmnElement="Task_EnterUVaServersWebsites">
|
||||
<dc:Bounds x="980" y="770" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_0n3jbd7_di" bpmnElement="Task_EnterWebCloudServer">
|
||||
<dc:Bounds x="980" y="870" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="Association_0ykpfju_di" bpmnElement="Association_0ykpfju">
|
||||
<di:waypoint x="1080" y="365" />
|
||||
<di:waypoint x="1200" y="306" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Association_1nrg5es_di" bpmnElement="Association_1nrg5es">
|
||||
<di:waypoint x="302" y="620" />
|
||||
<di:waypoint x="306" y="459" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Association_01x19xx_di" bpmnElement="Association_01x19xx">
|
||||
<di:waypoint x="1385" y="700" />
|
||||
<di:waypoint x="1399" y="820" />
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</bpmn:definitions>
|
||||
|
|
|
@ -10,27 +10,38 @@
|
|||
<bpmn:script>StudyInfo investigators</bpmn:script>
|
||||
</bpmn:scriptTask>
|
||||
<bpmn:endEvent id="EndEvent_1qor16n">
|
||||
<bpmn:documentation>## The following information was gathered:
|
||||
{% for type, investigator in StudyInfo.investigators.items() %}
|
||||
### {{investigator.label}}: {{investigator.display_name}}
|
||||
* Edit Acess? {{investigator.edit_access}}
|
||||
* Send Emails? {{investigator.emails}}
|
||||
{% if investigator.label == "Primary Investigator" %}
|
||||
* Experience: {{investigator.experience}}
|
||||
{% endif %}
|
||||
{% endfor %}</bpmn:documentation>
|
||||
<bpmn:incoming>Flow_1mplloa</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:userTask id="Activity_EditOtherPersonnel" name="Supplement Personnel" camunda:formKey="Access & Notifications">
|
||||
<bpmn:userTask id="Activity_EditOtherPersonnel" name="Update Personnel" camunda:formKey="Access & Notifications">
|
||||
<bpmn:documentation>### Please provide supplemental information for:
|
||||
#### Investigator : {{investigator.display_name}}
|
||||
##### Role: {{investigator.type_full}}
|
||||
#### {{investigator.display_name}}
|
||||
##### Title: {{investigator.title}}
|
||||
|
||||
##### Department: {{investigator.department}}
|
||||
##### Affiliation: {{investigator.affiliation}}</bpmn:documentation>
|
||||
<bpmn:extensionElements>
|
||||
<camunda:formData>
|
||||
<camunda:formField id="EditAccess" label="Should have Study Team editing access in the system?" type="boolean" defaultValue="false" />
|
||||
<camunda:formField id="AutomatedEmailNotification" label="Should receive automated email notifications?" type="boolean" defaultValue="false" />
|
||||
<camunda:formField id="PI_Experience" label="Investigator's Experience" type="textarea">
|
||||
<camunda:formField id="investigator.edit_access" label="Should have Study Team editing access in the system?" type="boolean" defaultValue="false" />
|
||||
<camunda:formField id="investigator.emails" label="Should receive automated email notifications?" type="boolean" defaultValue="false" />
|
||||
<camunda:formField id="investigator.experience" label="Investigator's Experience" type="textarea">
|
||||
<camunda:properties>
|
||||
<camunda:property id="rows" value="5" />
|
||||
<camunda:property id="hide_expression" value="model.investigator.type_full !== "Primary Investigator"" />
|
||||
<camunda:property id="hide_expression" value="model.investigator.label !== "Primary Investigator"" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
<camunda:properties>
|
||||
<camunda:property name="display_name" value="investigator.label" />
|
||||
</camunda:properties>
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_1dcsioh</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1mplloa</bpmn:outgoing>
|
||||
|
@ -43,28 +54,28 @@
|
|||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_01143nb">
|
||||
<bpmndi:BPMNEdge id="Flow_1dcsioh_di" bpmnElement="Flow_1dcsioh">
|
||||
<di:waypoint x="370" y="120" />
|
||||
<di:waypoint x="450" y="120" />
|
||||
<di:waypoint x="480" y="120" />
|
||||
<di:waypoint x="540" y="120" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1mplloa_di" bpmnElement="Flow_1mplloa">
|
||||
<di:waypoint x="550" y="120" />
|
||||
<di:waypoint x="642" y="120" />
|
||||
<di:waypoint x="640" y="120" />
|
||||
<di:waypoint x="722" y="120" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0kcrx5l_di" bpmnElement="Flow_0kcrx5l">
|
||||
<di:waypoint x="188" y="120" />
|
||||
<di:waypoint x="270" y="120" />
|
||||
<di:waypoint x="308" y="120" />
|
||||
<di:waypoint x="380" y="120" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||
<dc:Bounds x="152" y="102" width="36" height="36" />
|
||||
<dc:Bounds x="272" y="102" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="ScriptTask_0h49cmf_di" bpmnElement="ScriptTask_LoadPersonnel">
|
||||
<dc:Bounds x="270" y="80" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="EndEvent_1qor16n_di" bpmnElement="EndEvent_1qor16n">
|
||||
<dc:Bounds x="642" y="102" width="36" height="36" />
|
||||
<dc:Bounds x="380" y="80" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_0d622qi_di" bpmnElement="Activity_EditOtherPersonnel">
|
||||
<dc:Bounds x="450" y="80" width="100" height="80" />
|
||||
<dc:Bounds x="540" y="80" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="EndEvent_1qor16n_di" bpmnElement="EndEvent_1qor16n">
|
||||
<dc:Bounds x="722" y="102" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1v1rp1q" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.0.0">
|
||||
<bpmn:process id="Process_1vu5nxl" isExecutable="true">
|
||||
<bpmn:startEvent id="StartEvent_1">
|
||||
<bpmn:outgoing>SequenceFlow_0lvudp8</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
<bpmn:sequenceFlow id="SequenceFlow_0lvudp8" sourceRef="StartEvent_1" targetRef="Activity_0oa736e" />
|
||||
<bpmn:endEvent id="EndEvent_0q4qzl9">
|
||||
<bpmn:incoming>SequenceFlow_02vev7n</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:sequenceFlow id="SequenceFlow_02vev7n" sourceRef="Task_14svgcu" targetRef="EndEvent_0q4qzl9" />
|
||||
<bpmn:userTask id="Task_14svgcu" name="Enum Lookup Form" camunda:formKey="EnumForm">
|
||||
<bpmn:extensionElements>
|
||||
<camunda:formData>
|
||||
<camunda:formField id="guest_of_honor" label="Who is the guest of honor?" type="enum">
|
||||
<camunda:properties>
|
||||
<camunda:property id="data.name" value="invitees" />
|
||||
<camunda:property id="data.value.column" value="secret_id" />
|
||||
<camunda:property id="data.label.column" value="display_name" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_1yet4a9</bpmn:incoming>
|
||||
<bpmn:outgoing>SequenceFlow_02vev7n</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_1yet4a9" sourceRef="Activity_0oa736e" targetRef="Task_14svgcu" />
|
||||
<bpmn:userTask id="Activity_0oa736e" name="Who do you want to invite to your tea party?" camunda:formKey="task_1_form">
|
||||
<bpmn:extensionElements>
|
||||
<camunda:formData>
|
||||
<camunda:formField id="first_name" label="What is their first name?" type="string">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="last_name" label="What is their last name?" type="string">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="age" label="How old are they?" type="long">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="likes_pie" label="Do they like pie?" type="boolean">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="num_lumps" label="How many lumps of sugar in their tea?" type="long">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="secret_id" label="What is their secret identity?" type="string">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
<camunda:formField id="display_name" label="What's their nickname?" type="string">
|
||||
<camunda:properties>
|
||||
<camunda:property id="repeat" value="invitees" />
|
||||
</camunda:properties>
|
||||
</camunda:formField>
|
||||
</camunda:formData>
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>SequenceFlow_0lvudp8</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1yet4a9</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
</bpmn:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1vu5nxl">
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_02vev7n_di" bpmnElement="SequenceFlow_02vev7n">
|
||||
<di:waypoint x="500" y="117" />
|
||||
<di:waypoint x="542" y="117" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="SequenceFlow_0lvudp8_di" bpmnElement="SequenceFlow_0lvudp8">
|
||||
<di:waypoint x="215" y="117" />
|
||||
<di:waypoint x="250" y="117" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1yet4a9_di" bpmnElement="Flow_1yet4a9">
|
||||
<di:waypoint x="350" y="117" />
|
||||
<di:waypoint x="400" y="117" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||
<dc:Bounds x="179" y="99" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_0k8rwp9_di" bpmnElement="Activity_0oa736e">
|
||||
<dc:Bounds x="250" y="77" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="UserTask_18ly1yq_di" bpmnElement="Task_14svgcu">
|
||||
<dc:Bounds x="400" y="77" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="EndEvent_0q4qzl9_di" bpmnElement="EndEvent_0q4qzl9">
|
||||
<dc:Bounds x="542" y="99" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</bpmn:definitions>
|
|
@ -403,6 +403,31 @@ class TestTasksApi(BaseTest):
|
|||
self.assert_options_populated(results, ['CUSTOMER_NUMBER', 'CUSTOMER_NAME', 'CUSTOMER_CLASS_MEANING'])
|
||||
self.assertIsInstance(results[0]['data'], dict)
|
||||
|
||||
def test_enum_from_task_data(self):
|
||||
self.load_example_data()
|
||||
workflow = self.create_workflow('enum_options_from_task_data')
|
||||
# get the first form in the two form workflow.
|
||||
workflow_api = self.get_workflow_api(workflow)
|
||||
task = workflow_api.next_task
|
||||
|
||||
workflow_api = self.complete_form(workflow, task, {'invitees': [
|
||||
{'first_name': 'Alistair', 'last_name': 'Aardvark', 'age': 43, 'likes_pie': True, 'num_lumps': 21, 'secret_id': 'Antimony', 'display_name': 'Professor Alistair A. Aardvark'},
|
||||
{'first_name': 'Berthilda', 'last_name': 'Binturong', 'age': 12, 'likes_pie': False, 'num_lumps': 34, 'secret_id': 'Beryllium', 'display_name': 'Dr. Berthilda B. Binturong'},
|
||||
{'first_name': 'Chesterfield', 'last_name': 'Capybara', 'age': 32, 'likes_pie': True, 'num_lumps': 1, 'secret_id': 'Cadmium', 'display_name': 'The Honorable C. C. Capybara'},
|
||||
]})
|
||||
task = workflow_api.next_task
|
||||
|
||||
field_id = task.form['fields'][0]['id']
|
||||
options = task.form['fields'][0]['options']
|
||||
self.assertEqual(3, len(options))
|
||||
option_id = options[0]['id']
|
||||
self.assertEqual('Professor Alistair A. Aardvark', options[0]['name'])
|
||||
self.assertEqual('Dr. Berthilda B. Binturong', options[1]['name'])
|
||||
self.assertEqual('The Honorable C. C. Capybara', options[2]['name'])
|
||||
self.assertEqual('Alistair', options[0]['data']['first_name'])
|
||||
self.assertEqual('Berthilda', options[1]['data']['first_name'])
|
||||
self.assertEqual('Chesterfield', options[2]['data']['first_name'])
|
||||
|
||||
def test_lookup_endpoint_for_task_ldap_field_lookup(self):
|
||||
self.load_example_data()
|
||||
workflow = self.create_workflow('ldap_lookup')
|
||||
|
|
|
@ -132,7 +132,6 @@ class TestWorkflowService(BaseTest):
|
|||
# The first task should be empty, with all the data removed.
|
||||
self.assertEqual({}, task_logs[0].form_data)
|
||||
|
||||
|
||||
def test_dmn_evaluation_errors_in_oncomplete_raise_api_errors_during_validation(self):
|
||||
workflow_spec_model = self.load_test_spec("decision_table_invalid")
|
||||
with self.assertRaises(ApiError):
|
||||
|
|
|
@ -92,7 +92,7 @@ class TestWorkflowSpecValidation(BaseTest):
|
|||
self.load_example_data()
|
||||
errors = self.validate_workflow("invalid_script")
|
||||
self.assertEqual(2, len(errors))
|
||||
self.assertEqual("workflow_validation_exception", errors[0]['code'])
|
||||
self.assertEqual("error_loading_workflow", errors[0]['code'])
|
||||
self.assertTrue("NoSuchScript" in errors[0]['message'])
|
||||
self.assertEqual("Invalid_Script_Task", errors[0]['task_id'])
|
||||
self.assertEqual("An Invalid Script Reference", errors[0]['task_name'])
|
||||
|
|
Loading…
Reference in New Issue