onc_certification_g10_test_kit 6.0.3 → 7.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/inferno/repositiories/validators.rb +0 -6
  3. data/lib/inferno/repositiories/value_sets.rb +1 -7
  4. data/lib/inferno/terminology/expected_manifest.yml +5 -5
  5. data/lib/inferno/terminology/fhir_package_manager.rb +13 -4
  6. data/lib/inferno/terminology/loader.rb +2 -1
  7. data/lib/inferno/terminology/tasks/download_fhir_terminology.rb +2 -1
  8. data/lib/inferno/terminology/tasks/download_umls.rb +2 -1
  9. data/lib/inferno/terminology/tasks/expand_value_set_to_file.rb +1 -1
  10. data/lib/inferno/terminology/tasks/run_umls_jar.rb +2 -1
  11. data/lib/inferno/terminology/validator.rb +1 -0
  12. data/lib/inferno/terminology/value_set.rb +2 -0
  13. data/lib/onc_certification_g10_test_kit/all_resources.rb +74 -0
  14. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +361 -59
  15. data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +4 -3
  16. data/lib/onc_certification_g10_test_kit/g10_options.rb +20 -1
  17. data/lib/onc_certification_g10_test_kit/limited_scope_grant_test.rb +4 -0
  18. data/lib/onc_certification_g10_test_kit/multi_patient_api_stu1.rb +2 -1
  19. data/lib/onc_certification_g10_test_kit/multi_patient_api_stu2.rb +2 -1
  20. data/lib/onc_certification_g10_test_kit/patient_scope_test.rb +1 -1
  21. data/lib/onc_certification_g10_test_kit/profile_selector.rb +40 -15
  22. data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +89 -2
  23. data/lib/onc_certification_g10_test_kit/short_id_map.yml +1417 -12
  24. data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +219 -0
  25. data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +41 -1
  26. data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +33 -1
  27. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2_2.rb +128 -0
  28. data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +234 -0
  29. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group_stu2_2.rb +188 -0
  30. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group.rb +188 -0
  31. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group_stu2_2.rb +188 -0
  32. data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +67 -1
  33. data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +128 -1
  34. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2_2.rb +162 -0
  35. data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +10 -2
  36. data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +159 -0
  37. data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +117 -0
  38. data/lib/onc_certification_g10_test_kit/terminology_binding_validator.rb +5 -1
  39. data/lib/onc_certification_g10_test_kit/token_introspection_group_stu2_2.rb +97 -0
  40. data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +85 -31
  41. data/lib/onc_certification_g10_test_kit/version.rb +1 -1
  42. data/lib/onc_certification_g10_test_kit/visual_inspection_and_attestations_group.rb +171 -0
  43. data/lib/onc_certification_g10_test_kit/well_known_capabilities_test.rb +1 -1
  44. data/lib/onc_certification_g10_test_kit.rb +72 -5
  45. metadata +18 -10
@@ -8,7 +8,7 @@ module ONCCertificationG10TestKit
8
8
  Verify that Group compartment export from the Bulk Data server follow US Core Implementation Guide
9
9
  DESCRIPTION
10
10
 
11
- id :bulk_data_group_export_validation
11
+ id :g10_bulk_data_group_export_validation
12
12
 
13
13
  input :status_output, :requires_access_token, :bearer_token, :bulk_download_url
14
14
  input :lines_to_validate,
@@ -203,7 +203,7 @@ module ONCCertificationG10TestKit
203
203
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
204
204
 
205
205
 
206
- For US Core v6.1.0, evidence of support for the following two profiles must be demonstrated:
206
+ For US Core v6.1.0 and v7.0.0, evidence of support for the following two profiles must be demonstrated:
207
207
 
208
208
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-encounter-diagnosis
209
209
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns
@@ -351,63 +351,87 @@ module ONCCertificationG10TestKit
351
351
  test do
352
352
  title 'Observation resources returned conform to the relevant US Core Observation Profile'
353
353
  description <<~DESCRIPTION
354
- This test verifies that the resources returned from bulk data export
355
- conform to the following US Core profiles, based on the category or code
356
- associated with the Observation. This includes checking for missing data
357
- elements and value set verification.
358
-
359
- For US Core v3.1.1, this test expects evidence of the following US Core profiles
360
-
361
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
362
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
363
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
364
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
365
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
366
- * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
367
- * http://hl7.org/fhir/StructureDefinition/bp
368
- * http://hl7.org/fhir/StructureDefinition/bodyheight
369
- * http://hl7.org/fhir/StructureDefinition/bodytemp
370
- * http://hl7.org/fhir/StructureDefinition/bodyweight
371
- * http://hl7.org/fhir/StructureDefinition/heartrate
372
- * http://hl7.org/fhir/StructureDefinition/resprate
373
-
374
- For US Core v4.0.0, this test expects evidence of the following US Core profiles
375
-
376
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
377
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
378
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
379
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
380
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
381
- * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
382
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure
383
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-bmi
384
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-head-circumference
385
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-height
386
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-weight
387
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-temperature
388
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
389
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
390
-
391
- For US Core v6.1.0, this test expects evidence of the following US Core profiles
392
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
393
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-occupation
394
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancyintent
395
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancystatus
396
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-screening-assessment
397
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-sexual-orientation
398
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
399
- * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
400
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
401
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
402
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure
403
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-bmi
404
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-height
405
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-temperature
406
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-weight
407
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-head-circumference
408
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
409
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
410
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
354
+ This test verifies that the resources returned from bulk data export
355
+ conform to the following US Core profiles, based on the category or code
356
+ associated with the Observation. This includes checking for missing data
357
+ elements and value set verification.
358
+
359
+ For US Core v3.1.1, this test expects evidence of the following US Core profiles
360
+
361
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
362
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
363
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
364
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
365
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
366
+ * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
367
+ * http://hl7.org/fhir/StructureDefinition/bp
368
+ * http://hl7.org/fhir/StructureDefinition/bodyheight
369
+ * http://hl7.org/fhir/StructureDefinition/bodytemp
370
+ * http://hl7.org/fhir/StructureDefinition/bodyweight
371
+ * http://hl7.org/fhir/StructureDefinition/heartrate
372
+ * http://hl7.org/fhir/StructureDefinition/resprate
373
+
374
+ For US Core v4.0.0, this test expects evidence of the following US Core profiles
375
+
376
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
377
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
378
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
379
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
380
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
381
+ * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
382
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure
383
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-bmi
384
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-head-circumference
385
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-height
386
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-weight
387
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-temperature
388
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
389
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
390
+
391
+ For US Core v6.1.0, this test expects evidence of the following US Core profiles
392
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
393
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-occupation
394
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancyintent
395
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancystatus
396
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-screening-assessment
397
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-sexual-orientation
398
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
399
+ * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
400
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
401
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
402
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure
403
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-bmi
404
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-height
405
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-temperature
406
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-weight
407
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-head-circumference
408
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
409
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
410
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
411
+
412
+ For US Core v7.0.0, this test expects evidence of the following US Core profiles
413
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
414
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-occupation
415
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancyintent
416
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-pregnancystatus
417
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-screening-assessment
418
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-sexual-orientation
419
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
420
+ * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
421
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
422
+ * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
423
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure
424
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-bmi
425
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-height
426
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-temperature
427
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-weight
428
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-head-circumference
429
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
430
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
431
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
432
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-treatment-intervention-preference
433
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-care-experience-preference
434
+ * http://hl7.org/fhir/us/core/StructureDefinition/us-core-average-blood-pressure
411
435
  DESCRIPTION
412
436
 
413
437
  include BulkExportValidationTester
@@ -532,6 +556,88 @@ module ONCCertificationG10TestKit
532
556
  DESCRIPTION
533
557
  # link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location'
534
558
 
559
+ required_suite_options G10Options::US_CORE_3_REQUIREMENT
560
+
561
+ id :g10_us_core_3_bulk_location_validation
562
+
563
+ include BulkExportValidationTester
564
+
565
+ def resource_type
566
+ 'Location'
567
+ end
568
+
569
+ run do
570
+ perform_bulk_export_validation
571
+ end
572
+ end
573
+
574
+ test do
575
+ title 'Location resources returned conform to the HL7 FHIR Specification Location Resource if bulk data export ' \
576
+ 'has Location resources'
577
+ description <<~DESCRIPTION
578
+ This test verifies that the resources returned from bulk data export
579
+ conform to the HL7 FHIR Specification Location Resource. This includes
580
+ checking for missing data elements and value set verification. This test
581
+ is omitted if bulk data export does not return any Location resources.
582
+ DESCRIPTION
583
+ # link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location'
584
+
585
+ required_suite_options G10Options::US_CORE_4_REQUIREMENT
586
+
587
+ id :g10_us_core_4_bulk_location_validation
588
+
589
+ include BulkExportValidationTester
590
+
591
+ def resource_type
592
+ 'Location'
593
+ end
594
+
595
+ run do
596
+ perform_bulk_export_validation
597
+ end
598
+ end
599
+
600
+ test do
601
+ title 'Location resources returned conform to the HL7 FHIR Specification Location Resource if bulk data export ' \
602
+ 'has Location resources'
603
+ description <<~DESCRIPTION
604
+ This test verifies that the resources returned from bulk data export
605
+ conform to the HL7 FHIR Specification Location Resource. This includes
606
+ checking for missing data elements and value set verification. This test
607
+ is omitted if bulk data export does not return any Location resources.
608
+ DESCRIPTION
609
+ # link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location'
610
+
611
+ required_suite_options G10Options::US_CORE_5_REQUIREMENT
612
+
613
+ id :g10_us_core_5_bulk_location_validation
614
+
615
+ include BulkExportValidationTester
616
+
617
+ def resource_type
618
+ 'Location'
619
+ end
620
+
621
+ run do
622
+ perform_bulk_export_validation
623
+ end
624
+ end
625
+
626
+ test do
627
+ title 'Location resources returned conform to the HL7 FHIR Specification Location Resource if bulk data export ' \
628
+ 'has Location resources'
629
+ description <<~DESCRIPTION
630
+ This test verifies that the resources returned from bulk data export
631
+ conform to the HL7 FHIR Specification Location Resource. This includes
632
+ checking for missing data elements and value set verification. This test
633
+ is omitted if bulk data export does not return any Location resources.
634
+ DESCRIPTION
635
+ # link 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location'
636
+
637
+ required_suite_options G10Options::US_CORE_6_REQUIREMENT
638
+
639
+ id :g10_us_core_6_bulk_location_validation
640
+
535
641
  include BulkExportValidationTester
536
642
 
537
643
  def resource_type
@@ -575,6 +681,8 @@ module ONCCertificationG10TestKit
575
681
 
576
682
  required_suite_options G10Options::US_CORE_5_REQUIREMENT
577
683
 
684
+ id :g10_us_core_5_bulk_service_request_validation
685
+
578
686
  include BulkExportValidationTester
579
687
 
580
688
  def resource_type
@@ -596,6 +704,8 @@ module ONCCertificationG10TestKit
596
704
 
597
705
  required_suite_options G10Options::US_CORE_5_REQUIREMENT
598
706
 
707
+ id :g10_us_core_5_bulk_related_person_validation
708
+
599
709
  include BulkExportValidationTester
600
710
 
601
711
  def resource_type
@@ -619,6 +729,8 @@ module ONCCertificationG10TestKit
619
729
 
620
730
  required_suite_options G10Options::US_CORE_5_REQUIREMENT
621
731
 
732
+ id :g10_us_core_5_bulk_questionnaire_response_validation
733
+
622
734
  include BulkExportValidationTester
623
735
 
624
736
  def resource_type
@@ -642,6 +754,8 @@ module ONCCertificationG10TestKit
642
754
 
643
755
  required_suite_options G10Options::US_CORE_5_REQUIREMENT
644
756
 
757
+ id :g10_us_core_5_bulk_practitioner_role_validation
758
+
645
759
  include BulkExportValidationTester
646
760
 
647
761
  def resource_type
@@ -817,5 +931,193 @@ module ONCCertificationG10TestKit
817
931
  perform_bulk_export_validation
818
932
  end
819
933
  end
934
+
935
+ test do
936
+ title 'ServiceRequest resources returned conform to the US Core ServiceRequest Profile'
937
+ description <<~DESCRIPTION
938
+ This test verifies that the resources returned from bulk data export
939
+ conform to the US Core ServiceRequest profile. This includes checking
940
+ for missing data elements and value set verification.
941
+ DESCRIPTION
942
+
943
+ id :g10_us_core_7_bulk_service_request_validation
944
+
945
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
946
+
947
+ include BulkExportValidationTester
948
+
949
+ def resource_type
950
+ 'ServiceRequest'
951
+ end
952
+
953
+ run do
954
+ perform_bulk_export_validation
955
+ end
956
+ end
957
+
958
+ test do
959
+ title 'RelatedPerson resources returned conform to the US Core RelatedPerson Profile'
960
+ description <<~DESCRIPTION
961
+ This test verifies that the resources returned from bulk data export
962
+ conform to the US Core RelatedPerson profile. This includes checking
963
+ for missing data elements and value set verification.
964
+ DESCRIPTION
965
+
966
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
967
+
968
+ id :g10_us_core_7_bulk_related_person_validation
969
+
970
+ include BulkExportValidationTester
971
+
972
+ def resource_type
973
+ 'RelatedPerson'
974
+ end
975
+
976
+ run do
977
+ perform_bulk_export_validation
978
+ end
979
+ end
980
+
981
+ test do
982
+ title 'QuestionnaireResponse resources returned conform to the US Core QuestionnaireResponse Profile if ' \
983
+ 'bulk data has QuestionnaireResponse resources'
984
+ description <<~DESCRIPTION
985
+ This test verifies that the resources returned from bulk data export
986
+ conform to the US Core QuestionnaireResponse profile. This includes checking for missing
987
+ data elements and value set verification. This test is omitted if bulk
988
+ data export does not return any QuestionnaireResponse resources.
989
+ DESCRIPTION
990
+
991
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
992
+
993
+ id :g10_us_core_7_bulk_questionnaire_response_validation
994
+
995
+ include BulkExportValidationTester
996
+
997
+ def resource_type
998
+ 'QuestionnaireResponse'
999
+ end
1000
+
1001
+ run do
1002
+ perform_bulk_export_validation
1003
+ end
1004
+ end
1005
+
1006
+ test do
1007
+ title 'PractionerRole resources returned conform to the US Core PractionerRole Profile if bulk data export ' \
1008
+ 'has PractionerRole resources'
1009
+ description <<~DESCRIPTION
1010
+ This test verifies that the resources returned from bulk data export
1011
+ conform to the US Core PractitionerRole profile. This includes checking for missing
1012
+ data elements and value set verification. This test is omitted if bulk
1013
+ data export does not return any resources.
1014
+ DESCRIPTION
1015
+
1016
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
1017
+
1018
+ id :g10_us_core_7_bulk_practitioner_role_validation
1019
+
1020
+ include BulkExportValidationTester
1021
+
1022
+ def resource_type
1023
+ 'PractitionerRole'
1024
+ end
1025
+
1026
+ run do
1027
+ perform_bulk_export_validation
1028
+ end
1029
+ end
1030
+
1031
+ test do
1032
+ title 'Coverage resources returned conform to the US Core Coverage Profile'
1033
+ description <<~DESCRIPTION
1034
+ This test verifies that the resources returned from bulk data export
1035
+ conform to the US Core Coverage profile. This includes checking
1036
+ for missing data elements and value set verification.
1037
+ DESCRIPTION
1038
+
1039
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
1040
+
1041
+ id :g10_us_core_7_bulk_coverage_validation
1042
+
1043
+ include BulkExportValidationTester
1044
+
1045
+ def resource_type
1046
+ 'Coverage'
1047
+ end
1048
+
1049
+ run do
1050
+ perform_bulk_export_validation
1051
+ end
1052
+ end
1053
+
1054
+ test do
1055
+ title 'MedicationDispense resources returned conform to the US Core MedicationDispense Profile'
1056
+ description <<~DESCRIPTION
1057
+ This test verifies that the resources returned from bulk data export
1058
+ conform to the US Core MedicationDispense profile. This includes checking
1059
+ for missing data elements and value set verification.
1060
+ DESCRIPTION
1061
+
1062
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
1063
+
1064
+ id :g10_us_core_7_bulk_medication_dispense_validation
1065
+
1066
+ include BulkExportValidationTester
1067
+
1068
+ def resource_type
1069
+ 'MedicationDispense'
1070
+ end
1071
+
1072
+ run do
1073
+ perform_bulk_export_validation
1074
+ end
1075
+ end
1076
+
1077
+ test do
1078
+ title 'Specimen resources returned conform to the US Core Specimen Profile'
1079
+ description <<~DESCRIPTION
1080
+ This test verifies that the resources returned from bulk data export
1081
+ conform to the US Core Specimen profile. This includes checking
1082
+ for missing data elements and value set verification.
1083
+ DESCRIPTION
1084
+
1085
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
1086
+
1087
+ id :g10_us_core_7_bulk_specimen_validation
1088
+
1089
+ include BulkExportValidationTester
1090
+
1091
+ def resource_type
1092
+ 'Specimen'
1093
+ end
1094
+
1095
+ run do
1096
+ perform_bulk_export_validation
1097
+ end
1098
+ end
1099
+
1100
+ test do
1101
+ title 'Location resources returned conform to the US Core Location Profile'
1102
+ description <<~DESCRIPTION
1103
+ This test verifies that the resources returned from bulk data export
1104
+ conform to the US Core Location profile. This includes checking
1105
+ for missing data elements and value set verification.
1106
+ DESCRIPTION
1107
+
1108
+ required_suite_options G10Options::US_CORE_7_REQUIREMENT
1109
+
1110
+ id :g10_us_core_7_bulk_location_validation
1111
+
1112
+ include BulkExportValidationTester
1113
+
1114
+ def resource_type
1115
+ 'Location'
1116
+ end
1117
+
1118
+ run do
1119
+ perform_bulk_export_validation
1120
+ end
1121
+ end
820
1122
  end
821
1123
  end
@@ -1,16 +1,17 @@
1
1
  require_relative 'profile_selector'
2
+ require_relative 'all_resources'
2
3
 
3
4
  module ONCCertificationG10TestKit
4
5
  module BulkExportValidationTester
5
6
  include USCoreTestKit::MustSupportTest
6
7
  include ProfileSelector
7
8
  include G10Options
9
+ include AllResources
8
10
 
9
11
  attr_reader :metadata
10
12
 
11
13
  MAX_NUM_COLLECTED_LINES = 100
12
14
  MIN_RESOURCE_COUNT = 2
13
- OMIT_KLASS = ['Medication', 'Location', 'QuestionnaireResponse', 'PractitionerRole'].freeze
14
15
  PROFILES_TO_SKIP = [
15
16
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-simple-observation'
16
17
  ].freeze
@@ -99,7 +100,7 @@ module ONCCertificationG10TestKit
99
100
 
100
101
  def validate_conformance(resources)
101
102
  metadata_list.each do |meta|
102
- next if resource_type == 'Location'
103
+ next if resource_type == 'Location' && !us_core_7_and_above?
103
104
 
104
105
  skip_if resources[meta.profile_url].blank?,
105
106
  "No #{resource_type} resources found that conform to profile: #{meta.profile_url}."
@@ -201,7 +202,7 @@ module ONCCertificationG10TestKit
201
202
  file_list = JSON.parse(status_output).select { |file| file['type'] == resource_type }
202
203
  if file_list.empty?
203
204
  message = "No #{resource_type} resource file item returned by server."
204
- omit_if (OMIT_KLASS.include? resource_type), "#{message} #{resource_type} resources are optional."
205
+ omit_if (all_required_resources.exclude? resource_type), "#{message} #{resource_type} resources are optional."
205
206
  skip message
206
207
  end
207
208
 
@@ -4,12 +4,14 @@ module ONCCertificationG10TestKit
4
4
  US_CORE_4 = 'us_core_4'.freeze
5
5
  US_CORE_5 = 'us_core_5'.freeze
6
6
  US_CORE_6 = 'us_core_6'.freeze
7
+ US_CORE_7 = 'us_core_7'.freeze
7
8
 
8
9
  US_CORE_VERSION_NUMBERS = {
9
10
  US_CORE_3 => '3.1.1',
10
11
  US_CORE_4 => '4.0.0',
11
12
  US_CORE_5 => '5.0.1',
12
- US_CORE_6 => '6.1.0'
13
+ US_CORE_6 => '6.1.0',
14
+ US_CORE_7 => '7.0.0'
13
15
  }.freeze
14
16
 
15
17
  BULK_DATA_1 = 'multi_patient_api_stu1'.freeze
@@ -17,17 +19,20 @@ module ONCCertificationG10TestKit
17
19
 
18
20
  SMART_1 = 'smart_app_launch_1'.freeze
19
21
  SMART_2 = 'smart_app_launch_2'.freeze
22
+ SMART_2_2 = 'smart_app_launch_2_2'.freeze
20
23
 
21
24
  US_CORE_3_REQUIREMENT = { us_core_version: US_CORE_3 }.freeze
22
25
  US_CORE_4_REQUIREMENT = { us_core_version: US_CORE_4 }.freeze
23
26
  US_CORE_5_REQUIREMENT = { us_core_version: US_CORE_5 }.freeze
24
27
  US_CORE_6_REQUIREMENT = { us_core_version: US_CORE_6 }.freeze
28
+ US_CORE_7_REQUIREMENT = { us_core_version: US_CORE_7 }.freeze
25
29
 
26
30
  BULK_DATA_1_REQUIREMENT = { multi_patient_version: BULK_DATA_1 }.freeze
27
31
  BULK_DATA_2_REQUIREMENT = { multi_patient_version: BULK_DATA_2 }.freeze
28
32
 
29
33
  SMART_1_REQUIREMENT = { smart_app_launch_version: SMART_1 }.freeze
30
34
  SMART_2_REQUIREMENT = { smart_app_launch_version: SMART_2 }.freeze
35
+ SMART_2_2_REQUIREMENT = { smart_app_launch_version: SMART_2_2 }.freeze
31
36
 
32
37
  def us_core_version
33
38
  suite_options[:us_core_version]
@@ -37,6 +42,10 @@ module ONCCertificationG10TestKit
37
42
  us_core_version == US_CORE_3
38
43
  end
39
44
 
45
+ def using_us_core_4?
46
+ us_core_version == US_CORE_4
47
+ end
48
+
40
49
  def using_us_core_5?
41
50
  us_core_version == US_CORE_5
42
51
  end
@@ -45,8 +54,18 @@ module ONCCertificationG10TestKit
45
54
  us_core_version == US_CORE_6
46
55
  end
47
56
 
57
+ def using_us_core_7?
58
+ us_core_version == US_CORE_7
59
+ end
60
+
61
+ def us_core_7_and_above?
62
+ us_core_version[-1].to_i > 6
63
+ end
64
+
48
65
  def versioned_us_core_module
49
66
  case us_core_version
67
+ when US_CORE_7
68
+ USCoreTestKit::USCoreV700
50
69
  when US_CORE_6
51
70
  USCoreTestKit::USCoreV610
52
71
  when US_CORE_5
@@ -37,11 +37,15 @@ module ONCCertificationG10TestKit
37
37
  V6_POSSIBLE_RESOURCES =
38
38
  (V5_POSSIBLE_RESOURCES + ['Specimen', 'Coverage', 'MedicationDispense']).freeze
39
39
 
40
+ V7_POSSIBLE_RESOURCES = (V6_POSSIBLE_RESOURCES + ['Location']).freeze
41
+
40
42
  def possible_resources
41
43
  return V5_POSSIBLE_RESOURCES if using_us_core_5?
42
44
 
43
45
  return V6_POSSIBLE_RESOURCES if using_us_core_6?
44
46
 
47
+ return V7_POSSIBLE_RESOURCES if using_us_core_7?
48
+
45
49
  POSSIBLE_RESOURCES
46
50
  end
47
51
 
@@ -78,7 +78,8 @@ module ONCCertificationG10TestKit
78
78
  test from: :g10_incorrectly_permitted_tls_versions_messages_setup,
79
79
  id: :g10_bulk_group_export_tls_messages_setup
80
80
 
81
- group from: :bulk_data_group_export_validation
81
+ group from: :g10_bulk_data_group_export_validation,
82
+ id: :bulk_data_group_export_validation
82
83
 
83
84
  test from: :g10_incorrectly_permitted_tls_versions_messages_setup,
84
85
  id: :g10_bulk_group_export_validation_messages_setup
@@ -78,7 +78,8 @@ module ONCCertificationG10TestKit
78
78
  test from: :g10_incorrectly_permitted_tls_versions_messages_setup,
79
79
  id: :g10_bulk_group_export_tls_messages_setup
80
80
 
81
- group from: :bulk_data_group_export_validation
81
+ group from: :g10_bulk_data_group_export_validation,
82
+ id: :bulk_data_group_export_validation
82
83
 
83
84
  test from: :g10_incorrectly_permitted_tls_versions_messages_setup,
84
85
  id: :g10_bulk_group_export_validation_messages_setup
@@ -22,7 +22,7 @@ module ONCCertificationG10TestKit
22
22
 
23
23
  run do
24
24
  expected_scopes =
25
- if scope_version == :v2
25
+ if scope_version == :v2 || scope_version == :v22
26
26
  [
27
27
  Regexp.new(scope_regex_string('patient/Patient.rs').gsub('.rs', '.r?s')),
28
28
  Regexp.new(scope_regex_string('patient/Patient.rs').gsub('.rs', '.rs?'))