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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c7e34871dfb8d144500c2d7201253013a27cce92413aaffc8704b16eb0331cd7
4
- data.tar.gz: 7bf41e835597e2841c8904f900803a425565687a3aad99ca3922e0b061345c53
3
+ metadata.gz: 94fa24c05c22fbf01bdd0d158934d70770e14f9dcb661b1856840e391852baf0
4
+ data.tar.gz: a6165cab59395dacf2221a75fdf3d959eb57dd9d4f243d2780d44b6779b31bf0
5
5
  SHA512:
6
- metadata.gz: 53b78bcae65f294473391daa99027fef3d7c252290666019b703683de19321777d272ee391869b7c2e397188f959ff519734e618ae8e929f675b3b848e784df7
7
- data.tar.gz: 32045b109ec5ad255d2f77d13ad6bc02691f3f22c412decf3b305e82223941219f40e31a5d5687174ce3f2dceb51e85a65ed5d4353f3ca8b68038f68cc3f4147
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.blank? }
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.blank? }
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.present? }
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.present? }
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
- 'gt' + (DateTime.xmlschema(element.start) - 1).xmlschema
635
+ "gt#{(DateTime.xmlschema(element.start) - 1).xmlschema}"
628
636
  else
629
637
  end_datetime = get_fhir_datetime_range(element.end)[:end]
630
- 'lt' + (end_datetime + 1).xmlschema
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.version != 'v3.1.1' &&
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.present?
674
+ break if search_value_present?(search_value)
668
675
  end
669
676
 
670
- search_value&.gsub(',', '\\,')
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.present?
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
 
@@ -1,4 +1,4 @@
1
1
  module PacioInfernoCore
2
- VERSION = '0.1.0'.freeze
3
- LAST_UPDATED = '2026-06-11'.freeze # TODO: update next release
2
+ VERSION = '0.1.1'.freeze
3
+ LAST_UPDATED = '2026-06-12'.freeze # TODO: update next release
4
4
  end
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.0
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 00:00:00.000000000 Z
11
+ date: 2026-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core