pacio_inferno_core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/pacio_inferno_core/search_test.rb +19 -12
- data/lib/pacio_inferno_core/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 94fa24c05c22fbf01bdd0d158934d70770e14f9dcb661b1856840e391852baf0
|
|
4
|
+
data.tar.gz: a6165cab59395dacf2221a75fdf3d959eb57dd9d4f243d2780d44b6779b31bf0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4f167879108f9adf2f1a04ac9d38a0773b4eeecb0123d9ce20e3cf6cf73b1832f176d46d72a5a903ce14fbfbb0ea683af349d55d0ecdfe0a64f8bc63158e5569
|
|
7
|
+
data.tar.gz: b54a1c8b3a0d9aba985cfe9468acbc128c1ed478497ae6b72ed3d2c10a806cfa2114cec8893aec5c639eee530609bd5e101e1dba278ef71cffe188c6a14487dd
|
|
@@ -38,7 +38,7 @@ module PacioInfernoCore
|
|
|
38
38
|
[search_params_with_values(search_param_names, patient_id)]
|
|
39
39
|
end
|
|
40
40
|
new_params.reject! do |params|
|
|
41
|
-
params.any? { |_key, value| value
|
|
41
|
+
params.any? { |_key, value| search_value_blank?(value) }
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
params[patient_id].concat(new_params)
|
|
@@ -310,7 +310,7 @@ module PacioInfernoCore
|
|
|
310
310
|
return if search_variant_test_records[:token_variants]
|
|
311
311
|
|
|
312
312
|
new_search_params = search_params_with_values(token_search_params, patient_id, include_system: true)
|
|
313
|
-
return if new_search_params.any? { |_name, value| value
|
|
313
|
+
return if new_search_params.any? { |_name, value| search_value_blank?(value) }
|
|
314
314
|
|
|
315
315
|
search_params = params.merge(new_search_params)
|
|
316
316
|
search_and_check_response(search_params)
|
|
@@ -525,7 +525,7 @@ module PacioInfernoCore
|
|
|
525
525
|
outer_params.merge!(results_from_one_resource)
|
|
526
526
|
|
|
527
527
|
# stop if all parameter values are found
|
|
528
|
-
return outer_params if outer_params.all? { |_key, value| value
|
|
528
|
+
return outer_params if outer_params.all? { |_key, value| search_value_present?(value) }
|
|
529
529
|
end
|
|
530
530
|
end
|
|
531
531
|
|
|
@@ -551,7 +551,15 @@ module PacioInfernoCore
|
|
|
551
551
|
end
|
|
552
552
|
|
|
553
553
|
def all_search_params_present?(params)
|
|
554
|
-
params.all? { |_name, value| value
|
|
554
|
+
params.all? { |_name, value| search_value_present?(value) }
|
|
555
|
+
end
|
|
556
|
+
|
|
557
|
+
def search_value_present?(value)
|
|
558
|
+
value == false || value.present?
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
def search_value_blank?(value)
|
|
562
|
+
!search_value_present?(value)
|
|
555
563
|
end
|
|
556
564
|
|
|
557
565
|
def array_of_codes(array)
|
|
@@ -624,10 +632,10 @@ module PacioInfernoCore
|
|
|
624
632
|
case element
|
|
625
633
|
when FHIR::Period
|
|
626
634
|
if element.start.present?
|
|
627
|
-
|
|
635
|
+
"gt#{(DateTime.xmlschema(element.start) - 1).xmlschema}"
|
|
628
636
|
else
|
|
629
637
|
end_datetime = get_fhir_datetime_range(element.end)[:end]
|
|
630
|
-
|
|
638
|
+
"lt#{(end_datetime + 1).xmlschema}"
|
|
631
639
|
end
|
|
632
640
|
when FHIR::Reference
|
|
633
641
|
element.reference
|
|
@@ -645,8 +653,7 @@ module PacioInfernoCore
|
|
|
645
653
|
when Inferno::DSL::PrimitiveType
|
|
646
654
|
element.value
|
|
647
655
|
else
|
|
648
|
-
if metadata.
|
|
649
|
-
metadata.search_definitions[name.to_sym][:type] == 'date' &&
|
|
656
|
+
if metadata.search_definitions[name.to_sym][:type] == 'date' &&
|
|
650
657
|
params_with_comparators&.include?(name)
|
|
651
658
|
# convert date search to greath-than comparator search with correct precision
|
|
652
659
|
# For all date search parameters:
|
|
@@ -664,10 +671,10 @@ module PacioInfernoCore
|
|
|
664
671
|
end
|
|
665
672
|
end
|
|
666
673
|
|
|
667
|
-
break if search_value
|
|
674
|
+
break if search_value_present?(search_value)
|
|
668
675
|
end
|
|
669
676
|
|
|
670
|
-
search_value
|
|
677
|
+
search_value.to_s.gsub(',', '\\,') if search_value_present?(search_value)
|
|
671
678
|
end
|
|
672
679
|
|
|
673
680
|
def element_has_valid_value?(element, include_system)
|
|
@@ -686,7 +693,7 @@ module PacioInfernoCore
|
|
|
686
693
|
when FHIR::Address
|
|
687
694
|
(element.text || element.city || element.state || element.postalCode || element.country).present?
|
|
688
695
|
when Inferno::DSL::PrimitiveType
|
|
689
|
-
element.value
|
|
696
|
+
search_value_present?(element.value)
|
|
690
697
|
else
|
|
691
698
|
true
|
|
692
699
|
end
|
|
@@ -830,7 +837,7 @@ module PacioInfernoCore
|
|
|
830
837
|
end
|
|
831
838
|
else
|
|
832
839
|
search_values = search_value.split(/(?<!\\\\),/).map { |string| string.gsub('\\,', ',') }
|
|
833
|
-
values_found.any? { |value_found| search_values.include? value_found }
|
|
840
|
+
values_found.any? { |value_found| search_values.include? value_found.to_s }
|
|
834
841
|
end
|
|
835
842
|
end
|
|
836
843
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pacio_inferno_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stephen MacVicar
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: inferno_core
|