From ad3eefea2efae8dfc220af0643a1929dc7926259 Mon Sep 17 00:00:00 2001 From: Giulia Baldini <44327645+giuliabaldini@users.noreply.github.com> Date: Fri, 17 Mar 2023 12:42:53 +0100 Subject: [PATCH] 121 improve documentation (#122) * Add logic to disable multiprocessing if processes=1 * Update examples * Add explanation about multiple resources output * Add example for multi dataframe output --------- Co-authored-by: Giulia Baldini --- README.md | 70 +++++++++++- examples/1-simple-json-to-df.ipynb | 18 ++-- examples/2-condition-to-imaging-study.ipynb | 28 +++-- examples/3-observation-for-condition.ipynb | 94 +++++----------- .../4-patients-for-diagnostic-report.ipynb | 101 ++++++++++-------- fhir_pyrate/pirate.py | 3 + 6 files changed, 174 insertions(+), 140 deletions(-) diff --git a/README.md b/README.md index 6fa5469..5ab2e48 100644 --- a/README.md +++ b/README.md @@ -203,10 +203,12 @@ The Pirate functions do one of three things: | trade_rows_for_dataframe | 3 | Yes | Yes | DataFrame | -**BETA FEATURE**: It is also possible to cache the bundles using the `bundle_caching` parameter, -which specifies a caching folder. This has not yet been tested extensively and does not have any -cache invalidation mechanism. - +**CACHING**: It is also possible to cache the bundles using the `cache_folder` parameter. +This unfortunately does not currently work with multiprocessing, but saves a lot of time if you +need to download a lot of data and you are always doing the same requests. +You can also specify how long the cache should be valid with the `cache_expiry_time` parameter. +Additionally, you can also specify whether the requests should be retried using the `retry_requests` +parameter. There is an example of this in the docstrings of the Pirate class. A toy request for ImagingStudy: @@ -396,7 +398,65 @@ parameters specified in `df_constraints` as columns of the final DataFrame. You can find an example in [Example 3](https://github.com/UMEssen/FHIR-PYrate/blob/main/examples/3-patients-for-condition.ipynb). Additionally, you can specify the `with_columns` parameter, which can add any columns from the original DataFrame. The columns can be either specified as a list of columns `[col1, col2, ...]` or as a -list of tuples `[(new_name_for_col1, col1), (new_name_for_col2, col2), ...]` +list of tuples `[(new_name_for_col1, col1), (new_name_for_col2, col2), ...]`. + +Currently, whenever a column is completely empty (i.e., no resources +have a corresponding value for that column), it is just removed from the DataFrame. +This is to ensure that we output clean DataFrames when we are handling multiple resources. +More on that in the following section. + +#### Note on Querying Multiple Resources + +Not all FHIR servers allow this (at least not the public ones that we have tried), +but it is also possible to obtain multiple resources with just one query: +```python +search = ... +result_dfs = search.steal_bundles_to_dataframe( + resource_type="ImagingStudy", + request_params={ + "_lastUpdated": "ge2022-12", + "_count": "3", + "_include": "ImagingStudy:subject", + }, + fhir_paths=[ + "id", + "started", + ("modality", "modality.code"), + ("procedureCode", "procedureCode.coding.code"), + ( + "study_instance_uid", + "identifier.where(system = 'urn:dicom:uid').value.replace('urn:oid:', '')", + ), + ("series_instance_uid", "series.uid"), + ("series_code", "series.modality.code"), + ("numberOfInstances", "series.numberOfInstances"), + ("family_first", "name[0].family"), + ("given_first", "name[0].given"), + ], + num_pages=1, +) +``` +In this case, a dictionary of DataFrames is returned, where the keys are the resource types. +You can then select the single dictionary by doing `result_dfs["ImagingStudy"]` +or `result_dfs["Patient"]`. +You can find an example of this in [Example 2](https://github.com/UMEssen/FHIR-PYrate/blob/main/examples/2-condition-to-imaging-study.ipynb) +where the `ImagingStudy` resource is queried. + +In theory, it would be smarter to specify the resource name in front of the FHIRPaths, +e.g. `ImagingStudy.series.uid` instead of `series.uid`, and for each DataFrame only return the +corresponding attributes. +However, we do not want to force the user to always specify the resource type, and in the current +version the DataFrames +coming from multiple resources have the same columns, because +we cannot filter which resource was actually intended. +Currently, we solved this by just removing all columns that do not have any results. +Which means however, that if you are actually requesting an attribute for a specific resource and it +is not found, that that column will not appear. +In the future, [we plan to do a smarter filtering of the FHIRPaths](https://github.com/UMEssen/FHIR-PYrate/issues/120), +such that only the ones containing +the actual resource name are kept if the resource name is specified in the path, +and that a column full of `None`s is obtained in case no resource type is specified. + ### [Miner](https://github.com/UMEssen/FHIR-PYrate/blob/main/fhir_pyrate/miner.py) diff --git a/examples/1-simple-json-to-df.ipynb b/examples/1-simple-json-to-df.ipynb index a7bdc8c..ea2686f 100644 --- a/examples/1-simple-json-to-df.ipynb +++ b/examples/1-simple-json-to-df.ipynb @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "outputs": [], "source": [ "from fhir_pyrate import Pirate\n", @@ -65,20 +65,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "http://hapi.fhir.org/baseDstu2/Observation?_id=86092\n" + "http://hapi.fhir.org/baseDstu2/Observation/86092\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 1/1 [00:00<00:00, 5882.61it/s]\n" + "Query & Build DF (Observation): 100%|██████████| 1/1 [00:00<00:00, 12372.58it/s]\n" ] }, { @@ -86,7 +86,7 @@ "text/plain": " resourceType id meta_versionId meta_lastUpdated status \\\n0 Observation 86092 1 2018-11-19T12:59:31.238+00:00 final \n\n category_coding_0_system category_coding_0_code \\\n0 http://hl7.org/fhir/observation-category vital-signs \n\n code_coding_0_system code_coding_0_code code_coding_0_display code_text \\\n0 http://loinc.org 29463-7 Body Weight Body Weight \n\n subject_reference encounter_reference effectiveDateTime \\\n0 Patient/86079 Encounter/86090 2011-03-10T20:47:29-05:00 \n\n issued valueQuantity_value valueQuantity_unit \\\n0 2011-03-10T20:47:29-05:00 6.079781 kg \n\n valueQuantity_system valueQuantity_code \n0 http://unitsofmeasure.org/ kg ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
resourceTypeidmeta_versionIdmeta_lastUpdatedstatuscategory_coding_0_systemcategory_coding_0_codecode_coding_0_systemcode_coding_0_codecode_coding_0_displaycode_textsubject_referenceencounter_referenceeffectiveDateTimeissuedvalueQuantity_valuevalueQuantity_unitvalueQuantity_systemvalueQuantity_code
0Observation8609212018-11-19T12:59:31.238+00:00finalhttp://hl7.org/fhir/observation-categoryvital-signshttp://loinc.org29463-7Body WeightBody WeightPatient/86079Encounter/860902011-03-10T20:47:29-05:002011-03-10T20:47:29-05:006.079781kghttp://unitsofmeasure.org/kg
\n
" }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -120,20 +120,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "http://hapi.fhir.org/baseDstu2/Observation?_count=1&_id=86092\n" + "http://hapi.fhir.org/baseDstu2/Observation/86092\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 1/1 [00:00<00:00, 1197.69it/s]\n" + "Query & Build DF (Observation): 100%|██████████| 1/1 [00:00<00:00, 1379.71it/s]\n" ] }, { @@ -141,7 +141,7 @@ "text/plain": " id effectiveDateTime value unit patient\n0 86092 2011-03-10T20:47:29-05:00 6.079781 kg 86079", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ideffectiveDateTimevalueunitpatient
0860922011-03-10T20:47:29-05:006.079781kg86079
\n
" }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } diff --git a/examples/2-condition-to-imaging-study.ipynb b/examples/2-condition-to-imaging-study.ipynb index 1f1a31c..4789125 100644 --- a/examples/2-condition-to-imaging-study.ipynb +++ b/examples/2-condition-to-imaging-study.ipynb @@ -71,7 +71,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 2/2 [00:00<00:00, 4.25it/s]\n" + "Query & Build DF (Condition): 100%|██████████| 2/2 [00:00<00:00, 2.02it/s]\n" ] }, { @@ -149,7 +149,7 @@ "outputs": [ { "data": { - "text/plain": "158" + "text/plain": "157" }, "execution_count": 3, "metadata": {}, @@ -190,13 +190,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 2/2 [00:00<00:00, 7.94it/s]\n" + "Query & Build DF (ImagingStudy): 100%|██████████| 2/2 [00:00<00:00, 6.08it/s]\n" ] }, { "data": { - "text/plain": " started modality procedureCode \\\n0 2018-04-13T10:25:37.000+02:00 CT CTT \n0 2017-02-02T11:40:25.000+01:00 CT CTT \n0 2013-12-12T09:23:36.000+01:00 CT CTT \n0 2018-06-02T19:09:43.000+02:00 CT CTT \n0 2017-02-22T12:51:30.000+01:00 CT CTT \n.. ... ... ... \n55 2015-02-04T09:52:27.000+01:00 PT PCTGK \n55 2017-03-26T11:04:16.000+02:00 PT PCTGK \n55 2020-01-20T10:27:57.000+01:00 PT PCTGK \n55 2016-10-28T15:40:01.000+02:00 PT PCTGK \n55 2017-05-12T11:39:07.000+02:00 PT PCTGK \n\n study_instance_uid \\\n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n.. ... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n\n series_instance_uid series_code \\\n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... CT \n.. ... ... \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... CT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... CT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... PT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... PT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... PT \n\n numberOfInstances patient_id \n0 2 \n0 2 \n0 2 \n0 2 \n0 2 \n.. ... ... \n55 199 \n55 1 \n55 3 \n55 244 \n55 244 \n\n[331 rows x 8 columns]", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
startedmodalityprocedureCodestudy_instance_uidseries_instance_uidseries_codenumberOfInstancespatient_id
02018-04-13T10:25:37.000+02:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02017-02-02T11:40:25.000+01:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02013-12-12T09:23:36.000+01:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02018-06-02T19:09:43.000+02:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02017-02-22T12:51:30.000+01:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...CT2<redacted-id>
...........................
552015-02-04T09:52:27.000+01:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...CT199<redacted-id>
552017-03-26T11:04:16.000+02:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...CT1<redacted-id>
552020-01-20T10:27:57.000+01:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PT3<redacted-id>
552016-10-28T15:40:01.000+02:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PT244<redacted-id>
552017-05-12T11:39:07.000+02:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PT244<redacted-id>
\n

331 rows × 8 columns

\n
" + "text/plain": " started modality procedureCode \\\n0 2018-01-31T11:13:26.000+01:00 CT CTT \n0 2018-04-13T10:25:37.000+02:00 CT CTT \n0 2019-07-26T10:42:38.000+02:00 CT CTT \n0 2018-09-19T10:35:20.000+02:00 CT CTT \n0 2016-02-24T10:08:50.000+01:00 CT CTT \n.. ... ... ... \n55 2018-04-13T10:25:37.000+02:00 PT PCTGK \n55 2013-12-12T09:23:36.000+01:00 PT PCTGK \n55 2012-08-01T12:19:14.000+02:00 PT PCTGK \n55 2020-01-20T10:27:57.000+01:00 PT PCTGK \n55 2017-02-02T11:40:25.000+01:00 PT PCTGK \n\n study_instance_uid \\\n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n.. ... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n55 1.2.826.0.1.3680043.8.498.24222694654806877939... \n\n series_instance_uid series_code \\\n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... PR \n0 1.2.826.0.1.3680043.8.498.33463995182843850024... CT \n.. ... ... \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... CT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... CT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... PT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... PT \n55 1.2.826.0.1.3680043.8.498.33463995182843850024... PT \n\n numberOfInstances patient_id \n0 2 \n0 2 \n0 2 \n0 2 \n0 2 \n.. ... ... \n55 199 \n55 1 \n55 3 \n55 244 \n55 244 \n\n[331 rows x 8 columns]", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
startedmodalityprocedureCodestudy_instance_uidseries_instance_uidseries_codenumberOfInstancespatient_id
02018-01-31T11:13:26.000+01:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02018-04-13T10:25:37.000+02:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02019-07-26T10:42:38.000+02:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02018-09-19T10:35:20.000+02:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PR2<redacted-id>
02016-02-24T10:08:50.000+01:00CTCTT1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...CT2<redacted-id>
...........................
552018-04-13T10:25:37.000+02:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...CT199<redacted-id>
552013-12-12T09:23:36.000+01:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...CT1<redacted-id>
552012-08-01T12:19:14.000+02:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PT3<redacted-id>
552020-01-20T10:27:57.000+01:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PT244<redacted-id>
552017-02-02T11:40:25.000+01:00PTPCTGK1.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...PT244<redacted-id>
\n

331 rows × 8 columns

\n
" }, "execution_count": 4, "metadata": {}, @@ -303,8 +303,9 @@ "text": [ "Downloading Rows: 0%| | 0/1 [00:00\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
study_instance_uidseries_instance_uiddeidentified_study_instance_uiddeidentified_series_instance_uiddownload_iddownload_path
01.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...2.25.3298997118918347842907272021100721002562.25.15303934910816696466105020702411421963865425e1330b0895737d07d0fa29cd2614ff5dd9c7b566c...out/d9a3e30784e73023dfd19648e68c1dcc1012b9bd9f...
\n" + "text/plain": " study_instance_uid \\\n0 1.2.826.0.1.3680043.8.498.24222694654806877939... \n\n series_instance_uid \\\n0 1.2.826.0.1.3680043.8.498.33463995182843850024... \n\n deidentified_study_instance_uid \\\n0 2.25.236507833011739959424223550367290629720 \n\n deidentified_series_instance_uid \\\n0 2.25.201217751562255229154918195968192653161 \n\n download_id \\\n0 65425e1330b0895737d07d0fa29cd2614ff5dd9c7b566c... \n\n download_path \n0 out/6c249114e1ebfc8c38b812efdf3ba859a1f57d56bb... ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
study_instance_uidseries_instance_uiddeidentified_study_instance_uiddeidentified_series_instance_uiddownload_iddownload_path
01.2.826.0.1.3680043.8.498.24222694654806877939...1.2.826.0.1.3680043.8.498.33463995182843850024...2.25.2365078330117399594242235503672906297202.25.20121775156225522915491819596819265316165425e1330b0895737d07d0fa29cd2614ff5dd9c7b566c...out/6c249114e1ebfc8c38b812efdf3ba859a1f57d56bb...
\n
" }, "execution_count": 7, "metadata": {}, @@ -409,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "outputs": [], "source": [], "metadata": { diff --git a/examples/3-observation-for-condition.ipynb b/examples/3-observation-for-condition.ipynb index e679e69..da811d4 100644 --- a/examples/3-observation-for-condition.ipynb +++ b/examples/3-observation-for-condition.ipynb @@ -23,15 +23,12 @@ "First, we initialize FHIR-PYrate." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "outputs": [], "source": [ "from fhir_pyrate import Pirate\n", @@ -46,10 +43,7 @@ ")" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -61,21 +55,18 @@ "`fhir_paths` parameter." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 1/1 [00:00<00:00, 279.08it/s]\n" + "Query & Build DF (Condition): 100%|██████████| 1/1 [00:00<00:00, 392.17it/s]\n" ] }, { @@ -83,7 +74,7 @@ "text/plain": " id patient_id verificationStatus\n0 1839 Patient/1834 confirmed\n1 14316 Patient/14311 confirmed\n2 34354 Patient/34346 confirmed\n3 43629 Patient/43625 confirmed\n4 46711 Patient/46706 confirmed\n5 49356 Patient/49351 confirmed\n6 57176 Patient/57171 confirmed\n7 62556 Patient/62550 confirmed\n8 65046 Patient/64991 confirmed\n9 69808 Patient/69804 confirmed\n10 86323 Patient/86272 confirmed\n11 95632 Patient/95620 confirmed\n12 96660 Patient/96655 confirmed\n13 97272 Patient/97231 confirmed\n14 99287 Patient/99229 confirmed\n15 101164 Patient/101157 confirmed\n16 110749 Patient/110743 confirmed\n17 113272 Patient/113267 confirmed\n18 118736 Patient/118732 confirmed\n19 120324 Patient/120317 confirmed\n20 122070 Patient/122065 confirmed\n21 126009 Patient/126004 confirmed\n22 126939 Patient/126935 confirmed\n23 139585 Patient/139581 confirmed\n24 140767 Patient/140763 confirmed\n25 142918 Patient/142913 confirmed\n26 145356 Patient/145351 confirmed\n27 155254 Patient/155249 confirmed\n28 162626 Patient/162620 confirmed\n29 195429 Patient/195425 confirmed\n30 198328 Patient/198323 confirmed", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idpatient_idverificationStatus
01839Patient/1834confirmed
114316Patient/14311confirmed
234354Patient/34346confirmed
343629Patient/43625confirmed
446711Patient/46706confirmed
549356Patient/49351confirmed
657176Patient/57171confirmed
762556Patient/62550confirmed
865046Patient/64991confirmed
969808Patient/69804confirmed
1086323Patient/86272confirmed
1195632Patient/95620confirmed
1296660Patient/96655confirmed
1397272Patient/97231confirmed
1499287Patient/99229confirmed
15101164Patient/101157confirmed
16110749Patient/110743confirmed
17113272Patient/113267confirmed
18118736Patient/118732confirmed
19120324Patient/120317confirmed
20122070Patient/122065confirmed
21126009Patient/126004confirmed
22126939Patient/126935confirmed
23139585Patient/139581confirmed
24140767Patient/140763confirmed
25142918Patient/142913confirmed
26145356Patient/145351confirmed
27155254Patient/155249confirmed
28162626Patient/162620confirmed
29195429Patient/195425confirmed
30198328Patient/198323confirmed
\n
" }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -101,10 +92,7 @@ "condition_df" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -113,10 +101,7 @@ "This query could also be run in parallel with the `search.sail_through_search_space` function, which splits the desired period into smaller time frames and runs on query for each period. In this case, this is not needed." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { @@ -125,21 +110,18 @@ "Now we get the patients, and we make sure that there are no duplicates." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "outputs": [ { "data": { "text/plain": "31" }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -149,10 +131,7 @@ "len(patient_df)" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -162,21 +141,18 @@ "fields are relevant for us." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 31/31 [00:05<00:00, 5.77it/s]\n" + "Query & Build DF (Observation): 100%|██████████| 31/31 [00:07<00:00, 4.03it/s]\n" ] }, { @@ -184,7 +160,7 @@ "text/plain": " id effectiveDateTime \\\n0 1860 2008-07-10T10:38:49-04:00 \n1 1879 2009-04-17T10:51:37-04:00 \n2 1904 2010-05-04T11:15:19-04:00 \n3 1929 2011-04-08T07:41:18-04:00 \n4 1947 2012-02-17T17:43:51-05:00 \n.. ... ... \n115 145436 2012-12-11T03:13:58-05:00 \n116 145444 2014-01-26T21:33:05-05:00 \n117 145454 2015-01-16T07:30:36-05:00 \n118 145468 2016-02-02T03:33:14-05:00 \n119 145479 2017-02-15T23:19:16-05:00 \n\n test value \\\n0 [Systolic Blood Pressure, Diastolic Blood Pres... [111, 72] \n1 [Systolic Blood Pressure, Diastolic Blood Pres... [120, 81] \n2 [Systolic Blood Pressure, Diastolic Blood Pres... [102, 85] \n3 [Systolic Blood Pressure, Diastolic Blood Pres... [130, 77] \n4 [Systolic Blood Pressure, Diastolic Blood Pres... [127, 74] \n.. ... ... \n115 [Systolic Blood Pressure, Diastolic Blood Pres... [124, 87] \n116 [Systolic Blood Pressure, Diastolic Blood Pres... [119, 82] \n117 [Systolic Blood Pressure, Diastolic Blood Pres... [107, 75] \n118 [Systolic Blood Pressure, Diastolic Blood Pres... [112, 81] \n119 [Systolic Blood Pressure, Diastolic Blood Pres... [122, 81] \n\n unit patient_id \n0 [mmHg, mmHg] Patient/1834 \n1 [mmHg, mmHg] Patient/1834 \n2 [mmHg, mmHg] Patient/1834 \n3 [mmHg, mmHg] Patient/1834 \n4 [mmHg, mmHg] Patient/1834 \n.. ... ... \n115 [mmHg, mmHg] Patient/145351 \n116 [mmHg, mmHg] Patient/145351 \n117 [mmHg, mmHg] Patient/145351 \n118 [mmHg, mmHg] Patient/145351 \n119 [mmHg, mmHg] Patient/145351 \n\n[120 rows x 6 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ideffectiveDateTimetestvalueunitpatient_id
018602008-07-10T10:38:49-04:00[Systolic Blood Pressure, Diastolic Blood Pres...[111, 72][mmHg, mmHg]Patient/1834
118792009-04-17T10:51:37-04:00[Systolic Blood Pressure, Diastolic Blood Pres...[120, 81][mmHg, mmHg]Patient/1834
219042010-05-04T11:15:19-04:00[Systolic Blood Pressure, Diastolic Blood Pres...[102, 85][mmHg, mmHg]Patient/1834
319292011-04-08T07:41:18-04:00[Systolic Blood Pressure, Diastolic Blood Pres...[130, 77][mmHg, mmHg]Patient/1834
419472012-02-17T17:43:51-05:00[Systolic Blood Pressure, Diastolic Blood Pres...[127, 74][mmHg, mmHg]Patient/1834
.....................
1151454362012-12-11T03:13:58-05:00[Systolic Blood Pressure, Diastolic Blood Pres...[124, 87][mmHg, mmHg]Patient/145351
1161454442014-01-26T21:33:05-05:00[Systolic Blood Pressure, Diastolic Blood Pres...[119, 82][mmHg, mmHg]Patient/145351
1171454542015-01-16T07:30:36-05:00[Systolic Blood Pressure, Diastolic Blood Pres...[107, 75][mmHg, mmHg]Patient/145351
1181454682016-02-02T03:33:14-05:00[Systolic Blood Pressure, Diastolic Blood Pres...[112, 81][mmHg, mmHg]Patient/145351
1191454792017-02-15T23:19:16-05:00[Systolic Blood Pressure, Diastolic Blood Pres...[122, 81][mmHg, mmHg]Patient/145351
\n

120 rows × 6 columns

\n
" }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -211,10 +187,7 @@ "observation_df" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -225,10 +198,7 @@ "processing functions instead of FHIR paths." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { @@ -242,14 +212,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "outputs": [ { "data": { "text/plain": " id effectiveDateTime test value unit \\\n0 1860 2008-07-10T10:38:49-04:00 Systolic Blood Pressure 111 mmHg \n0 1860 2008-07-10T10:38:49-04:00 Diastolic Blood Pressure 72 mmHg \n1 1879 2009-04-17T10:51:37-04:00 Systolic Blood Pressure 120 mmHg \n1 1879 2009-04-17T10:51:37-04:00 Diastolic Blood Pressure 81 mmHg \n2 1904 2010-05-04T11:15:19-04:00 Systolic Blood Pressure 102 mmHg \n.. ... ... ... ... ... \n117 145454 2015-01-16T07:30:36-05:00 Diastolic Blood Pressure 75 mmHg \n118 145468 2016-02-02T03:33:14-05:00 Systolic Blood Pressure 112 mmHg \n118 145468 2016-02-02T03:33:14-05:00 Diastolic Blood Pressure 81 mmHg \n119 145479 2017-02-15T23:19:16-05:00 Systolic Blood Pressure 122 mmHg \n119 145479 2017-02-15T23:19:16-05:00 Diastolic Blood Pressure 81 mmHg \n\n patient_id \n0 Patient/1834 \n0 Patient/1834 \n1 Patient/1834 \n1 Patient/1834 \n2 Patient/1834 \n.. ... \n117 Patient/145351 \n118 Patient/145351 \n118 Patient/145351 \n119 Patient/145351 \n119 Patient/145351 \n\n[240 rows x 6 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ideffectiveDateTimetestvalueunitpatient_id
018602008-07-10T10:38:49-04:00Systolic Blood Pressure111mmHgPatient/1834
018602008-07-10T10:38:49-04:00Diastolic Blood Pressure72mmHgPatient/1834
118792009-04-17T10:51:37-04:00Systolic Blood Pressure120mmHgPatient/1834
118792009-04-17T10:51:37-04:00Diastolic Blood Pressure81mmHgPatient/1834
219042010-05-04T11:15:19-04:00Systolic Blood Pressure102mmHgPatient/1834
.....................
1171454542015-01-16T07:30:36-05:00Diastolic Blood Pressure75mmHgPatient/145351
1181454682016-02-02T03:33:14-05:00Systolic Blood Pressure112mmHgPatient/145351
1181454682016-02-02T03:33:14-05:00Diastolic Blood Pressure81mmHgPatient/145351
1191454792017-02-15T23:19:16-05:00Systolic Blood Pressure122mmHgPatient/145351
1191454792017-02-15T23:19:16-05:00Diastolic Blood Pressure81mmHgPatient/145351
\n

240 rows × 6 columns

\n
" }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -264,10 +234,7 @@ ")" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -282,13 +249,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 31/31 [00:05<00:00, 5.68it/s]\n" + "Query & Build DF (Observation): 100%|██████████| 31/31 [00:07<00:00, 3.97it/s]\n" ] }, { @@ -296,7 +263,7 @@ "text/plain": " observation_id Systolic Blood Pressure Systolic Blood Pressure Unit \\\n0 1860 111.0 mmHg \n1 1879 120.0 mmHg \n2 1904 102.0 mmHg \n3 1929 130.0 mmHg \n4 1947 127.0 mmHg \n.. ... ... ... \n115 145436 124.0 mmHg \n116 145444 119.0 mmHg \n117 145454 107.0 mmHg \n118 145468 112.0 mmHg \n119 145479 122.0 mmHg \n\n Diastolic Blood Pressure Diastolic Blood Pressure Unit patient_id \n0 72.0 mmHg Patient/1834 \n1 81.0 mmHg Patient/1834 \n2 85.0 mmHg Patient/1834 \n3 77.0 mmHg Patient/1834 \n4 74.0 mmHg Patient/1834 \n.. ... ... ... \n115 87.0 mmHg Patient/145351 \n116 82.0 mmHg Patient/145351 \n117 75.0 mmHg Patient/145351 \n118 81.0 mmHg Patient/145351 \n119 81.0 mmHg Patient/145351 \n\n[120 rows x 6 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
observation_idSystolic Blood PressureSystolic Blood Pressure UnitDiastolic Blood PressureDiastolic Blood Pressure Unitpatient_id
01860111.0mmHg72.0mmHgPatient/1834
11879120.0mmHg81.0mmHgPatient/1834
21904102.0mmHg85.0mmHgPatient/1834
31929130.0mmHg77.0mmHgPatient/1834
41947127.0mmHg74.0mmHgPatient/1834
.....................
115145436124.0mmHg87.0mmHgPatient/145351
116145444119.0mmHg82.0mmHgPatient/145351
117145454107.0mmHg75.0mmHgPatient/145351
118145468112.0mmHg81.0mmHgPatient/145351
119145479122.0mmHg81.0mmHgPatient/145351
\n

120 rows × 6 columns

\n
" }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -332,15 +299,11 @@ " with_ref=True,\n", " df_constraints={\"subject\": \"patient_id\"},\n", " process_function=get_observation_info, # Use processing function instead of FHIRPath\n", - " disable_multiprocessing=True,\n", ")\n", "observation_df" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -349,10 +312,7 @@ "And here they are, our results neatly organized in separate rows for each patient!" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } } ], diff --git a/examples/4-patients-for-diagnostic-report.ipynb b/examples/4-patients-for-diagnostic-report.ipynb index f97a901..59b9e9c 100644 --- a/examples/4-patients-for-diagnostic-report.ipynb +++ b/examples/4-patients-for-diagnostic-report.ipynb @@ -23,7 +23,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "WARNING:fhir_pyrate.pirate:You are using the term div in of your FHIR path text.div. Please keep in mind that this token can be used a function according to the FHIRPath specification (https://hl7.org/fhirpath/), which means that it will not be interpreted as path expression. E.g., if you are using text.div, it will not work, because 'div' is already a string that can be used for integer division. If you really want to do this, please use processing functions instead. If you are using the FHIRPath expressions correctly as they are intended, you can silence the warning when initializing the class.\n" + "WARNING:py.warnings:/Users/giuliabaldini/Documents/FHIR-PYrate/fhir_pyrate/pirate.py:1311: UserWarning: You are using the term div in of your FHIR path text.div. Please keep in mind that this token can be used a function according to the FHIRPath specification (https://hl7.org/fhirpath/), which means that it will not be interpreted as path expression. E.g., if you are using text.div, it will not work, because 'div' is already a string that can be used for integer division. If you really want to do this, please use processing functions instead. If you are using the FHIRPath expressions correctly as they are intended, you can silence the warning when initializing the class.\n", + " warnings.warn(\n", + "\n" ] }, { @@ -37,7 +39,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 0%| | 0/1 [00:00\u001B[0;34m()\u001B[0m\n\u001B[1;32m 9\u001B[0m \u001B[0mnum_processes\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;36m1\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 10\u001B[0m )\n\u001B[0;32m---> 11\u001B[0;31m diagnostic_df = search.steal_bundles_to_dataframe(\n\u001B[0m\u001B[1;32m 12\u001B[0m \u001B[0mresource_type\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;34m\"DiagnosticReport\"\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 13\u001B[0m request_params={\n", - "\u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py\u001B[0m in \u001B[0;36msteal_bundles_to_dataframe\u001B[0;34m(self, resource_type, request_params, num_pages, read_from_cache, process_function, fhir_paths, build_df_after_query)\u001B[0m\n\u001B[1;32m 199\u001B[0m \u001B[0;34m:\u001B[0m\u001B[0;32mreturn\u001B[0m\u001B[0;34m:\u001B[0m \u001B[0mA\u001B[0m \u001B[0mDataFrame\u001B[0m \u001B[0mcontaining\u001B[0m \u001B[0mthe\u001B[0m \u001B[0mqueried\u001B[0m \u001B[0minformation\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 200\u001B[0m \"\"\"\n\u001B[0;32m--> 201\u001B[0;31m return self._query_to_dataframe(self._bundle_fn)(\n\u001B[0m\u001B[1;32m 202\u001B[0m \u001B[0mresource_type\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mresource_type\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 203\u001B[0m \u001B[0mrequest_params\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mrequest_params\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py\u001B[0m in \u001B[0;36mwrap\u001B[0;34m(process_function, fhir_paths, build_df_after_query, disable_post_multiprocessing, *args, **kwargs)\u001B[0m\n\u001B[1;32m 1330\u001B[0m )\n\u001B[1;32m 1331\u001B[0m \u001B[0mprocess_function\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_set_up_fhirpath_function\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mfhir_paths\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1332\u001B[0;31m return self._bundles_to_dataframe(\n\u001B[0m\u001B[1;32m 1333\u001B[0m bundles=bundles_function(\n\u001B[1;32m 1334\u001B[0m \u001B[0;34m*\u001B[0m\u001B[0margs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mtqdm_df_build\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;32mnot\u001B[0m \u001B[0mbuild_df_after_query\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py\u001B[0m in \u001B[0;36m_bundles_to_dataframe\u001B[0;34m(self, bundles, process_function, build_df_after_query, disable_multiprocessing)\u001B[0m\n\u001B[1;32m 1278\u001B[0m \"\"\"\n\u001B[1;32m 1279\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mdisable_multiprocessing\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1280\u001B[0;31m \u001B[0mresults\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m[\u001B[0m\u001B[0mitem\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mbundle\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mbundles\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mitem\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mprocess_function\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbundle\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 1281\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1282\u001B[0m \u001B[0mpool\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mmultiprocessing\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mPool\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mnum_processes\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py\u001B[0m in \u001B[0;36m\u001B[0;34m(.0)\u001B[0m\n\u001B[1;32m 1278\u001B[0m \"\"\"\n\u001B[1;32m 1279\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mdisable_multiprocessing\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1280\u001B[0;31m \u001B[0mresults\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m[\u001B[0m\u001B[0mitem\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mbundle\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mbundles\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mitem\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mprocess_function\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbundle\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 1281\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1282\u001B[0m \u001B[0mpool\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mmultiprocessing\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mPool\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mnum_processes\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/util/bundle_processing_templates.py\u001B[0m in \u001B[0;36mparse_fhir_path\u001B[0;34m(bundle, compiled_fhir_paths)\u001B[0m\n\u001B[1;32m 90\u001B[0m )\n\u001B[1;32m 91\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mname\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mbase_dict\u001B[0m \u001B[0;32mor\u001B[0m \u001B[0mbase_dict\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;32mis\u001B[0m \u001B[0;32mNone\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 92\u001B[0;31m \u001B[0mbase_dict\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mcompiled_path\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mresource\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mresource\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mto_dict\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 93\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0misinstance\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbase_dict\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mList\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;32mand\u001B[0m \u001B[0mlen\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbase_dict\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m==\u001B[0m \u001B[0;36m1\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 94\u001B[0m \u001B[0mbase_dict\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mnext\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0miter\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mbase_dict\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mname\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.8/lib/python3.8/site-packages/fhirpathpy/engine/util.py\u001B[0m in \u001B[0;36m__call__\u001B[0;34m(self, resource, context)\u001B[0m\n\u001B[1;32m 12\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 13\u001B[0m \u001B[0;32mdef\u001B[0m \u001B[0m__call__\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mresource\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcontext\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;34m{\u001B[0m\u001B[0;34m}\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 14\u001B[0;31m \u001B[0;32mreturn\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mfunc\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mresource\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mparsedPath\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcontext\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmodel\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 15\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 16\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.8/lib/python3.8/site-packages/fhirpathpy/__init__.py\u001B[0m in \u001B[0;36mapply_parsed_path\u001B[0;34m(resource, parsedPath, context, model)\u001B[0m\n\u001B[1;32m 29\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 30\u001B[0m \u001B[0mctx\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m{\u001B[0m\u001B[0;34m\"dataRoot\"\u001B[0m\u001B[0;34m:\u001B[0m \u001B[0mdataRoot\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m\"vars\"\u001B[0m\u001B[0;34m:\u001B[0m \u001B[0mvars\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m\"model\"\u001B[0m\u001B[0;34m:\u001B[0m \u001B[0mmodel\u001B[0m\u001B[0;34m}\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 31\u001B[0;31m \u001B[0mnode\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mdo_eval\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mctx\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mdataRoot\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mparsedPath\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m\"children\"\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;36m0\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 32\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 33\u001B[0m \u001B[0;31m# Resolve any internal \"ResourceNode\" instances. Continue to let FP_Type\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.8/lib/python3.8/site-packages/fhirpathpy/engine/__init__.py\u001B[0m in \u001B[0;36mdo_eval\u001B[0;34m(ctx, parentData, node)\u001B[0m\n\u001B[1;32m 39\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mnode_type\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mevaluators\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 40\u001B[0m \u001B[0mevaluator\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mevaluators\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mget\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mnode_type\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 41\u001B[0;31m \u001B[0;32mreturn\u001B[0m \u001B[0mevaluator\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mctx\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mparentData\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnode\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 42\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 43\u001B[0m \u001B[0;32mraise\u001B[0m \u001B[0mException\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m\"No \"\u001B[0m \u001B[0;34m+\u001B[0m \u001B[0mnode_type\u001B[0m \u001B[0;34m+\u001B[0m \u001B[0;34m\" evaluator \"\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.8/lib/python3.8/site-packages/fhirpathpy/engine/evaluators/__init__.py\u001B[0m in \u001B[0;36mop_expression\u001B[0;34m(ctx, parentData, node)\u001B[0m\n\u001B[1;32m 55\u001B[0m \u001B[0;32mdef\u001B[0m \u001B[0mop_expression\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mctx\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mparentData\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnode\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 56\u001B[0m \u001B[0mop\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mnode\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m\"terminalNodeText\"\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;36m0\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 57\u001B[0;31m \u001B[0;32mreturn\u001B[0m \u001B[0mengine\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0minfix_invoke\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mctx\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mop\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mparentData\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnode\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m\"children\"\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 58\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 59\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.8/lib/python3.8/site-packages/fhirpathpy/engine/__init__.py\u001B[0m in \u001B[0;36minfix_invoke\u001B[0;34m(ctx, fn_name, data, raw_params)\u001B[0m\n\u001B[1;32m 155\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 156\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mparamsNumber\u001B[0m \u001B[0;34m!=\u001B[0m \u001B[0;36m2\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 157\u001B[0;31m \u001B[0;32mraise\u001B[0m \u001B[0mException\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m\"Infix invoke should have arity 2\"\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 158\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 159\u001B[0m \u001B[0margTypes\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0minvocation\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m\"arity\"\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mparamsNumber\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "Cell \u001B[0;32mIn[1], line 11\u001B[0m\n\u001B[1;32m 3\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01mfhir_pyrate\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mutil\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mfhirobj\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m FHIRObj\n\u001B[1;32m 5\u001B[0m search \u001B[38;5;241m=\u001B[39m Pirate(\n\u001B[1;32m 6\u001B[0m auth\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mNone\u001B[39;00m,\n\u001B[1;32m 7\u001B[0m base_url\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mhttp://hapi.fhir.org/baseDstu2\u001B[39m\u001B[38;5;124m\"\u001B[39m,\n\u001B[1;32m 8\u001B[0m print_request_url\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m, \u001B[38;5;66;03m# Set it to true to get the URL calls\u001B[39;00m\n\u001B[1;32m 9\u001B[0m num_processes\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m1\u001B[39m,\n\u001B[1;32m 10\u001B[0m )\n\u001B[0;32m---> 11\u001B[0m diagnostic_df \u001B[38;5;241m=\u001B[39m \u001B[43msearch\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msteal_bundles_to_dataframe\u001B[49m\u001B[43m(\u001B[49m\n\u001B[1;32m 12\u001B[0m \u001B[43m \u001B[49m\u001B[43mresource_type\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mDiagnosticReport\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\n\u001B[1;32m 13\u001B[0m \u001B[43m \u001B[49m\u001B[43mrequest_params\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m{\u001B[49m\n\u001B[1;32m 14\u001B[0m \u001B[43m \u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43m_count\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m:\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m100\u001B[39;49m\u001B[43m,\u001B[49m\n\u001B[1;32m 15\u001B[0m \u001B[43m \u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43m_lastUpdated\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m:\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mge2021\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\n\u001B[1;32m 16\u001B[0m \u001B[43m \u001B[49m\u001B[43m}\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 17\u001B[0m \u001B[43m \u001B[49m\u001B[43mfhir_paths\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mtext.status\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mtext.div\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 18\u001B[0m \u001B[43m)\u001B[49m\n\u001B[1;32m 19\u001B[0m diagnostic_df\n", + "File \u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py:263\u001B[0m, in \u001B[0;36mPirate.steal_bundles_to_dataframe\u001B[0;34m(self, resource_type, request_params, num_pages, process_function, fhir_paths, build_df_after_query)\u001B[0m\n\u001B[1;32m 232\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21msteal_bundles_to_dataframe\u001B[39m(\n\u001B[1;32m 233\u001B[0m \u001B[38;5;28mself\u001B[39m,\n\u001B[1;32m 234\u001B[0m resource_type: \u001B[38;5;28mstr\u001B[39m,\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 239\u001B[0m build_df_after_query: \u001B[38;5;28mbool\u001B[39m \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[1;32m 240\u001B[0m ) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Union[pd\u001B[38;5;241m.\u001B[39mDataFrame, Dict[\u001B[38;5;28mstr\u001B[39m, pd\u001B[38;5;241m.\u001B[39mDataFrame]]:\n\u001B[1;32m 241\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 242\u001B[0m \u001B[38;5;124;03m Executes a request, iterates through the result pages, and builds a DataFrame with their\u001B[39;00m\n\u001B[1;32m 243\u001B[0m \u001B[38;5;124;03m information. The DataFrames are either built after each\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 261\u001B[0m \u001B[38;5;124;03m returned.\u001B[39;00m\n\u001B[1;32m 262\u001B[0m \u001B[38;5;124;03m \"\"\"\u001B[39;00m\n\u001B[0;32m--> 263\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_query_to_dataframe\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_get_bundles\u001B[49m\u001B[43m)\u001B[49m\u001B[43m(\u001B[49m\n\u001B[1;32m 264\u001B[0m \u001B[43m \u001B[49m\u001B[43mresource_type\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mresource_type\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 265\u001B[0m \u001B[43m \u001B[49m\u001B[43mrequest_params\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mrequest_params\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 266\u001B[0m \u001B[43m \u001B[49m\u001B[43mnum_pages\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mnum_pages\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 267\u001B[0m \u001B[43m \u001B[49m\u001B[43msilence_tqdm\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[1;32m 268\u001B[0m \u001B[43m \u001B[49m\u001B[43mprocess_function\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mprocess_function\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 269\u001B[0m \u001B[43m \u001B[49m\u001B[43mfhir_paths\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mfhir_paths\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 270\u001B[0m \u001B[43m \u001B[49m\u001B[43mbuild_df_after_query\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mbuild_df_after_query\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 271\u001B[0m \u001B[43m \u001B[49m\u001B[43mdisable_multiprocessing_build\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mTrue\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[1;32m 272\u001B[0m \u001B[43m \u001B[49m\u001B[43malways_return_dict\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[1;32m 273\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n", + "File \u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py:1421\u001B[0m, in \u001B[0;36mPirate._query_to_dataframe..wrap\u001B[0;34m(process_function, fhir_paths, build_df_after_query, disable_multiprocessing_build, always_return_dict, *args, **kwargs)\u001B[0m\n\u001B[1;32m 1416\u001B[0m logger\u001B[38;5;241m.\u001B[39minfo(\n\u001B[1;32m 1417\u001B[0m \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mThe selected process_function \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mprocess_function\u001B[38;5;241m.\u001B[39m\u001B[38;5;18m__name__\u001B[39m\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m will be \u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 1418\u001B[0m \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124moverwritten.\u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 1419\u001B[0m )\n\u001B[1;32m 1420\u001B[0m process_function \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_set_up_fhirpath_function(fhir_paths)\n\u001B[0;32m-> 1421\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_bundles_to_dataframe\u001B[49m\u001B[43m(\u001B[49m\n\u001B[1;32m 1422\u001B[0m \u001B[43m \u001B[49m\u001B[43mbundles\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mbundles_function\u001B[49m\u001B[43m(\u001B[49m\n\u001B[1;32m 1423\u001B[0m \u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mtqdm_df_build\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;129;43;01mnot\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mbuild_df_after_query\u001B[49m\n\u001B[1;32m 1424\u001B[0m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 1425\u001B[0m \u001B[43m \u001B[49m\u001B[43mprocess_function\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mprocess_function\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 1426\u001B[0m \u001B[43m \u001B[49m\u001B[43mbuild_df_after_query\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mbuild_df_after_query\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 1427\u001B[0m \u001B[43m \u001B[49m\u001B[43mdisable_multiprocessing\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mdisable_multiprocessing_build\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 1428\u001B[0m \u001B[43m \u001B[49m\u001B[43malways_return_dict\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43malways_return_dict\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m 1429\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n", + "File \u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py:1353\u001B[0m, in \u001B[0;36mPirate._bundles_to_dataframe\u001B[0;34m(self, bundles, process_function, build_df_after_query, disable_multiprocessing, always_return_dict)\u001B[0m\n\u001B[1;32m 1336\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 1337\u001B[0m \u001B[38;5;124;03mConvert a bundle into a DataFrame using either the `flatten_data` function (default),\u001B[39;00m\n\u001B[1;32m 1338\u001B[0m \u001B[38;5;124;03mFHIR paths or a custom processing function. For the case of `flatten_data` and the FHIR\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 1350\u001B[0m \u001B[38;5;124;03mreturned.\u001B[39;00m\n\u001B[1;32m 1351\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 1352\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m disable_multiprocessing:\n\u001B[0;32m-> 1353\u001B[0m processed_bundles \u001B[38;5;241m=\u001B[39m [process_function(bundle) \u001B[38;5;28;01mfor\u001B[39;00m bundle \u001B[38;5;129;01min\u001B[39;00m bundles]\n\u001B[1;32m 1354\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m 1355\u001B[0m \u001B[38;5;66;03m# TODO: It could be that this never makes sense\u001B[39;00m\n\u001B[1;32m 1356\u001B[0m pool \u001B[38;5;241m=\u001B[39m multiprocessing\u001B[38;5;241m.\u001B[39mPool(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mnum_processes)\n", + "File \u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/pirate.py:1353\u001B[0m, in \u001B[0;36m\u001B[0;34m(.0)\u001B[0m\n\u001B[1;32m 1336\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 1337\u001B[0m \u001B[38;5;124;03mConvert a bundle into a DataFrame using either the `flatten_data` function (default),\u001B[39;00m\n\u001B[1;32m 1338\u001B[0m \u001B[38;5;124;03mFHIR paths or a custom processing function. For the case of `flatten_data` and the FHIR\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 1350\u001B[0m \u001B[38;5;124;03mreturned.\u001B[39;00m\n\u001B[1;32m 1351\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 1352\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m disable_multiprocessing:\n\u001B[0;32m-> 1353\u001B[0m processed_bundles \u001B[38;5;241m=\u001B[39m [\u001B[43mprocess_function\u001B[49m\u001B[43m(\u001B[49m\u001B[43mbundle\u001B[49m\u001B[43m)\u001B[49m \u001B[38;5;28;01mfor\u001B[39;00m bundle \u001B[38;5;129;01min\u001B[39;00m bundles]\n\u001B[1;32m 1354\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m 1355\u001B[0m \u001B[38;5;66;03m# TODO: It could be that this never makes sense\u001B[39;00m\n\u001B[1;32m 1356\u001B[0m pool \u001B[38;5;241m=\u001B[39m multiprocessing\u001B[38;5;241m.\u001B[39mPool(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mnum_processes)\n", + "File \u001B[0;32m~/Documents/FHIR-PYrate/fhir_pyrate/util/bundle_processing_templates.py:92\u001B[0m, in \u001B[0;36mparse_fhir_path\u001B[0;34m(bundle, compiled_fhir_paths)\u001B[0m\n\u001B[1;32m 90\u001B[0m base_dict: Dict[\u001B[38;5;28mstr\u001B[39m, Any] \u001B[38;5;241m=\u001B[39m {}\n\u001B[1;32m 91\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m name, compiled_path \u001B[38;5;129;01min\u001B[39;00m compiled_fhir_paths:\n\u001B[0;32m---> 92\u001B[0m result \u001B[38;5;241m=\u001B[39m \u001B[43mcompiled_path\u001B[49m\u001B[43m(\u001B[49m\u001B[43mresource\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mresource\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mto_dict\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 93\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m name \u001B[38;5;129;01min\u001B[39;00m base_dict \u001B[38;5;129;01mand\u001B[39;00m base_dict[name] \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;129;01mand\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(result) \u001B[38;5;241m>\u001B[39m \u001B[38;5;241m0\u001B[39m:\n\u001B[1;32m 94\u001B[0m warnings\u001B[38;5;241m.\u001B[39mwarn(\n\u001B[1;32m 95\u001B[0m \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mThe field \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mname\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m has already been filled with \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mbase_dict[name]\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m, \u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 96\u001B[0m \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mso it will not be overwritten.\u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 97\u001B[0m )\n", + "File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.10/lib/python3.10/site-packages/fhirpathpy/engine/util.py:14\u001B[0m, in \u001B[0;36mset_paths.__call__\u001B[0;34m(self, resource, context)\u001B[0m\n\u001B[1;32m 13\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21m__call__\u001B[39m(\u001B[38;5;28mself\u001B[39m, resource, context\u001B[38;5;241m=\u001B[39m{}):\n\u001B[0;32m---> 14\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfunc\u001B[49m\u001B[43m(\u001B[49m\u001B[43mresource\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mparsedPath\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcontext\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mmodel\u001B[49m\u001B[43m)\u001B[49m\n", + "File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.10/lib/python3.10/site-packages/fhirpathpy/__init__.py:31\u001B[0m, in \u001B[0;36mapply_parsed_path\u001B[0;34m(resource, parsedPath, context, model)\u001B[0m\n\u001B[1;32m 28\u001B[0m \u001B[38;5;28mvars\u001B[39m\u001B[38;5;241m.\u001B[39mupdate(context)\n\u001B[1;32m 30\u001B[0m ctx \u001B[38;5;241m=\u001B[39m {\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mdataRoot\u001B[39m\u001B[38;5;124m\"\u001B[39m: dataRoot, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mvars\u001B[39m\u001B[38;5;124m\"\u001B[39m: \u001B[38;5;28mvars\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mmodel\u001B[39m\u001B[38;5;124m\"\u001B[39m: model}\n\u001B[0;32m---> 31\u001B[0m node \u001B[38;5;241m=\u001B[39m \u001B[43mdo_eval\u001B[49m\u001B[43m(\u001B[49m\u001B[43mctx\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdataRoot\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mparsedPath\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mchildren\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;241;43m0\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 33\u001B[0m \u001B[38;5;66;03m# Resolve any internal \"ResourceNode\" instances. Continue to let FP_Type\u001B[39;00m\n\u001B[1;32m 34\u001B[0m \u001B[38;5;66;03m# subclasses through.\u001B[39;00m\n\u001B[1;32m 36\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mvisit\u001B[39m(node):\n", + "File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.10/lib/python3.10/site-packages/fhirpathpy/engine/__init__.py:41\u001B[0m, in \u001B[0;36mdo_eval\u001B[0;34m(ctx, parentData, node)\u001B[0m\n\u001B[1;32m 39\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m node_type \u001B[38;5;129;01min\u001B[39;00m evaluators:\n\u001B[1;32m 40\u001B[0m evaluator \u001B[38;5;241m=\u001B[39m evaluators\u001B[38;5;241m.\u001B[39mget(node_type)\n\u001B[0;32m---> 41\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mevaluator\u001B[49m\u001B[43m(\u001B[49m\u001B[43mctx\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mparentData\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mnode\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 43\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mException\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mNo \u001B[39m\u001B[38;5;124m\"\u001B[39m \u001B[38;5;241m+\u001B[39m node_type \u001B[38;5;241m+\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m evaluator \u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", + "File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.10/lib/python3.10/site-packages/fhirpathpy/engine/evaluators/__init__.py:57\u001B[0m, in \u001B[0;36mop_expression\u001B[0;34m(ctx, parentData, node)\u001B[0m\n\u001B[1;32m 55\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mop_expression\u001B[39m(ctx, parentData, node):\n\u001B[1;32m 56\u001B[0m op \u001B[38;5;241m=\u001B[39m node[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mterminalNodeText\u001B[39m\u001B[38;5;124m\"\u001B[39m][\u001B[38;5;241m0\u001B[39m]\n\u001B[0;32m---> 57\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mengine\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43minfix_invoke\u001B[49m\u001B[43m(\u001B[49m\u001B[43mctx\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mop\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mparentData\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mnode\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mchildren\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n", + "File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/fhir-pyrate-VJNlgDv1-py3.10/lib/python3.10/site-packages/fhirpathpy/engine/__init__.py:157\u001B[0m, in \u001B[0;36minfix_invoke\u001B[0;34m(ctx, fn_name, data, raw_params)\u001B[0m\n\u001B[1;32m 154\u001B[0m paramsNumber \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlen\u001B[39m(raw_params)\n\u001B[1;32m 156\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m paramsNumber \u001B[38;5;241m!=\u001B[39m \u001B[38;5;241m2\u001B[39m:\n\u001B[0;32m--> 157\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mException\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mInfix invoke should have arity 2\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[1;32m 159\u001B[0m argTypes \u001B[38;5;241m=\u001B[39m invocation[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124marity\u001B[39m\u001B[38;5;124m\"\u001B[39m][paramsNumber]\n\u001B[1;32m 161\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m argTypes \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n", "\u001B[0;31mException\u001B[0m: Infix invoke should have arity 2" ] } @@ -84,10 +86,7 @@ "diagnostic_df" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -99,21 +98,18 @@ " have the same problem." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Query & Build DF: 100%|██████████| 1/1 [00:27<00:00, 27.53s/it]" + "Query & Build DF (DiagnosticReport): 1it [00:11, 11.63s/it]" ] }, { @@ -128,15 +124,32 @@ "output_type": "stream", "text": [ "\n", - "Query & Build DF: 100%|██████████| 1/1 [00:00<00:00, 5133.79it/s]\n" + " \r\n", + "Query & Build DF (DiagnosticReport): 1it [00:12, 12.83s/it]\n", + "Query & Build DF (DiagnosticReport): 1it [00:01, 1.19s/it]\u001B[A\n", + "Query & Build DF (DiagnosticReport): 2it [00:01, 1.67it/s]\u001B[A" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://hapi.fhir.org/baseDstu2?_getpages=a90830fa-49c1-48e4-ae02-e831cb631b35&_getpagesoffset=50&_count=50&_pretty=true&_bundletype=searchset\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" ] }, { "data": { - "text/plain": " diagnostic_report_id report_status \\\n0 267070 generated \n1 267041 generated \n2 267148 generated \n3 267199 generated \n4 266996 generated \n5 267149 generated \n6 267069 generated \n7 266997 generated \n8 267179 generated \n9 266955 generated \n10 267023 generated \n11 267150 generated \n12 266954 generated \n13 267113 generated \n14 266922 generated \n15 267490 generated \n16 267492 generated \n17 267365 generated \n18 267383 generated \n19 267093 generated \n20 267491 generated \n21 267296 generated \n22 267264 generated \n23 267297 generated \n24 267455 generated \n25 267339 generated \n26 267521 generated \n27 267411 generated \n28 267338 generated \n29 267541 generated \n30 267435 generated \n31 267412 generated \n32 267732 generated \n33 267841 generated \n34 267613 generated \n35 267890 generated \n36 267840 generated \n37 267839 generated \n38 267804 generated \n39 267714 generated \n40 267784 generated \n41 267687 generated \n42 267688 generated \n43 267646 generated \n44 267645 generated \n45 267760 generated \n46 267870 generated \n47 267761 generated \n\n report_text \n0
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
diagnostic_report_idreport_statusreport_text
0267070generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
1267041generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
2267148generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
3267199generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
4266996generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
5267149generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
6267069generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
7266997generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
8267179generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
9266955generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
10267023generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
11267150generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
12266954generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
13267113generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
14266922generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
15267490generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
16267492generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
17267365generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
18267383generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
19267093generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
20267491generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
21267296generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
22267264generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
23267297generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
24267455generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
25267339generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
26267521generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
27267411generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
28267338generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
29267541generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
30267435generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
31267412generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
32267732generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
33267841generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
34267613generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
35267890generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
36267840generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
37267839generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
38267804generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
39267714generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
40267784generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
41267687generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
42267688generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
43267646generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
44267645generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
45267760generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
46267870generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
47267761generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
\n
" + "text/plain": " diagnostic_report_id report_status \\\n0 266922 generated \n1 266954 generated \n2 266955 generated \n3 266996 generated \n4 266997 generated \n5 267023 generated \n6 267041 generated \n7 267069 generated \n8 267070 generated \n9 267093 generated \n10 267113 generated \n11 267148 generated \n12 267149 generated \n13 267150 generated \n14 267179 generated \n15 267199 generated \n16 267264 generated \n17 267296 generated \n18 267297 generated \n19 267338 generated \n20 267339 generated \n21 267365 generated \n22 267383 generated \n23 267411 generated \n24 267412 generated \n25 267435 generated \n26 267455 generated \n27 267490 generated \n28 267491 generated \n29 267492 generated \n30 267521 generated \n31 267541 generated \n32 267613 generated \n33 267645 generated \n34 267646 generated \n35 267687 generated \n36 267688 generated \n37 267714 generated \n38 267732 generated \n39 267760 generated \n40 267761 generated \n41 267784 generated \n42 267804 generated \n43 267839 generated \n44 267840 generated \n45 267841 generated \n46 267870 generated \n47 267890 generated \n48 276391 generated \n49 276399 generated \n\n report_text \n0
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
diagnostic_report_idreport_statusreport_text
0266922generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
1266954generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
2266955generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
3266996generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
4266997generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
5267023generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
6267041generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
7267069generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
8267070generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
9267093generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
10267113generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
11267148generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
12267149generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
13267150generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
14267179generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
15267199generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
16267264generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
17267296generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
18267297generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
19267338generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
20267339generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
21267365generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
22267383generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
23267411generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
24267412generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
25267435generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
26267455generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
27267490generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
28267491generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
29267492generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
30267521generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
31267541generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
32267613generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
33267645generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
34267646generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
35267687generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
36267688generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
37267714generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
38267732generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
39267760generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
40267761generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
41267784generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
42267804generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
43267839generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
44267840generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
45267841generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
46267870generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
47267890generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
48276391generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
49276399generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...
\n
" }, - "execution_count": 3, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -167,10 +180,7 @@ "diagnostic_df" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -190,22 +200,22 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", - "Searching for Sentences with Metabolic: 100%|██████████| 48/48 [00:00<00:00, 940778.47it/s]\n" + "Searching for Sentences with Metabolic: 100%|██████████| 50/50 [00:00<00:00, 1255779.64it/s]\n" ] }, { "data": { - "text/plain": " diagnostic_report_id report_status \\\n0 267070 generated \n1 267041 generated \n2 267148 generated \n3 267199 generated \n4 266996 generated \n5 267149 generated \n6 267069 generated \n7 266997 generated \n8 267179 generated \n9 266955 generated \n10 267023 generated \n11 267150 generated \n12 266954 generated \n13 267113 generated \n14 266922 generated \n15 267490 generated \n16 267492 generated \n17 267365 generated \n18 267383 generated \n19 267093 generated \n20 267491 generated \n21 267296 generated \n22 267264 generated \n23 267297 generated \n24 267455 generated \n25 267339 generated \n26 267521 generated \n27 267411 generated \n28 267338 generated \n29 267541 generated \n30 267435 generated \n31 267412 generated \n32 267732 generated \n33 267841 generated \n34 267613 generated \n35 267890 generated \n36 267840 generated \n37 267839 generated \n38 267804 generated \n39 267714 generated \n40 267784 generated \n41 267687 generated \n42 267688 generated \n43 267646 generated \n44 267645 generated \n45 267760 generated \n46 267870 generated \n47 267761 generated \n\n report_text \\\n0
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
diagnostic_report_idreport_statusreport_texttext_found_sentencestext_found
0267070generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
1267041generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
2267148generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
3267199generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
4266996generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
5267149generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
6267069generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
7266997generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
8267179generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
9266955generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
10267023generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
11267150generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
12266954generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
13267113generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
14266922generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
15267490generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
16267492generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
17267365generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
18267383generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
19267093generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
20267491generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
21267296generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
22267264generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
23267297generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
24267455generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
25267339generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
26267521generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
27267411generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
28267338generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
29267541generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
30267435generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
31267412generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
32267732generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
33267841generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
34267613generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
35267890generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
36267840generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
37267839generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
38267804generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
39267714generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
40267784generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
41267687generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
42267688generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
43267646generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
44267645generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
45267760generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
46267870generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[( , Basic, Metabolic, Panel)]True
47267761generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
\n
" + "text/plain": " diagnostic_report_id report_status \\\n0 266922 generated \n1 266954 generated \n2 266955 generated \n3 266996 generated \n4 266997 generated \n5 267023 generated \n6 267041 generated \n7 267069 generated \n8 267070 generated \n9 267093 generated \n10 267113 generated \n11 267148 generated \n12 267149 generated \n13 267150 generated \n14 267179 generated \n15 267199 generated \n16 267264 generated \n17 267296 generated \n18 267297 generated \n19 267338 generated \n20 267339 generated \n21 267365 generated \n22 267383 generated \n23 267411 generated \n24 267412 generated \n25 267435 generated \n26 267455 generated \n27 267490 generated \n28 267491 generated \n29 267492 generated \n30 267521 generated \n31 267541 generated \n32 267613 generated \n33 267645 generated \n34 267646 generated \n35 267687 generated \n36 267688 generated \n37 267714 generated \n38 267732 generated \n39 267760 generated \n40 267761 generated \n41 267784 generated \n42 267804 generated \n43 267839 generated \n44 267840 generated \n45 267841 generated \n46 267870 generated \n47 267890 generated \n48 276391 generated \n49 276399 generated \n\n report_text \\\n0
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
diagnostic_report_idreport_statusreport_texttext_found_sentencestext_found
0266922generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
1266954generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
2266955generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
3266996generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
4266997generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
5267023generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
6267041generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
7267069generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
8267070generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
9267093generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
10267113generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
11267148generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
12267149generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
13267150generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
14267179generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
15267199generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
16267264generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
17267296generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
18267297generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
19267338generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
20267339generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
21267365generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
22267383generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
23267411generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
24267412generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
25267435generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
26267455generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
27267490generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
28267491generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
29267492generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
30267521generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
31267541generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
32267613generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
33267645generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
34267646generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
35267687generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
36267688generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
37267714generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
38267732generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
39267760generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
40267761generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
41267784generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
42267804generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
43267839generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
44267840generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
45267841generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
46267870generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
47267890generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...[(Basic, Metabolic, Panel)]True
48276391generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
49276399generated<div xmlns=\"http://www.w3.org/1999/xhtml\"><div...NoneFalse
\n
" }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -229,10 +239,7 @@ "df_filtered" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -242,10 +249,16 @@ "text or not." ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false } } ], diff --git a/fhir_pyrate/pirate.py b/fhir_pyrate/pirate.py index 65a0671..1b4f2c7 100644 --- a/fhir_pyrate/pirate.py +++ b/fhir_pyrate/pirate.py @@ -127,6 +127,9 @@ def __init__( self.session = requests.session() self.disable_multiprocessing_requests = disable_multiprocessing_requests self.disable_multiprocessing_build = disable_multiprocessing_build + if num_processes == 1: + self.disable_multiprocessing_requests = True + self.disable_multiprocessing_build = True self.caching = False if cache_folder is not None: # TODO: Change this to work with context managers