From 678cd509330d61676011b5b29d605b1328bbabfd Mon Sep 17 00:00:00 2001 From: Yunwei Wang <> Date: Fri, 25 Jul 2025 14:45:55 -0500 Subject: [PATCH 1/2] Add US Core v8 client testing --- ...nt_demo_against_server_800_preset.json.erb | 46 +++++++++++++++++++ ...er_demo_against_client_800_preset.json.erb | 30 ++++++++++++ lib/us_core_test_kit.rb | 1 + .../v3.1.1/us_core_client_test_suite.rb | 2 +- .../v4.0.0/us_core_client_test_suite.rb | 2 +- .../v5.0.1/us_core_client_test_suite.rb | 2 +- .../v6.1.0/us_core_client_test_suite.rb | 2 +- .../v7.0.0/us_core_client_test_suite.rb | 3 +- .../v8.0.0/us_core_client_test_suite.rb | 11 ++++- .../client/generator/templates/suite.rb.erb | 13 +++++- lib/us_core_test_kit/metadata.rb | 2 +- 11 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 config/presets/client_demo_against_server_800_preset.json.erb create mode 100644 config/presets/server_demo_against_client_800_preset.json.erb diff --git a/config/presets/client_demo_against_server_800_preset.json.erb b/config/presets/client_demo_against_server_800_preset.json.erb new file mode 100644 index 000000000..1c73f51f6 --- /dev/null +++ b/config/presets/client_demo_against_server_800_preset.json.erb @@ -0,0 +1,46 @@ +{ + "title": "Demo: Run Against the US Core Server Suite", + "id": "demo_us_core_client_against_server_v800", + "test_suite_id": "us_core_client_v800", + "inputs": [ + { + "name": "client_id", + "description": "Testers may provide a specific value for Inferno to assign as the client id. If no value is provided, the Inferno session id will be used.", + "optional": true, + "title": "Client Id", + "type": "text", + "value": "us_core_client_demo" + }, + { + "name": "smart_launch_urls", + "description": "If the client app supports EHR launch, a comma-delimited list of one or more URLs that Inferno can use to launch the app.", + "optional": true, + "title": "SMART App Launch URL(s)", + "type": "textarea", + "value": "" + }, + { + "name": "smart_redirect_uris", + "description": "A comma-separated list of one or more URIs that the app will sepcify as the target of the redirect for Inferno to use when providing the authorization code.", + "title": "SMART App Launch Redirect URI(s)", + "type": "textarea", + "value": "<%= Inferno::Application['base_url'] %>/custom/smart/redirect" + }, + { + "name": "launch_context", + "description": "Launch context details to be included in access token responses, specified as a JSON array. If provided, the contents will be merged into Inferno's token responses.", + "optional": true, + "title": "Launch Context", + "type": "textarea", + "value": "" + }, + { + "name": "fhir_user_relative_reference", + "description": "A FHIR relative reference (/) for the FHIR user record to return when the openid and fhirUser scopes are requested. Include this resource in the **Available Resources** input so that it can be accessed via FHIR read.", + "optional": true, + "title": "FHIR User Relative Reference", + "type": "text", + "value": "Patient/us-core-client-tests-patient" + } + ] +} diff --git a/config/presets/server_demo_against_client_800_preset.json.erb b/config/presets/server_demo_against_client_800_preset.json.erb new file mode 100644 index 000000000..73aca59e7 --- /dev/null +++ b/config/presets/server_demo_against_client_800_preset.json.erb @@ -0,0 +1,30 @@ +{ + "title": "Demo: Run Against the US Core Client Suite", + "id": "demo_us_core_server_against_client_v800", + "test_suite_id": "us_core_v800", + "inputs": [ + { + "name": "url", + "type": "text", + "title": "FHIR Endpoint", + "description": "URL of the FHIR endpoint", + "value": "<%= Inferno::Application['base_url'] %>/custom/us_core_client_v800/fhir" + }, + { + "name": "smart_auth_info", + "type": "auth_info", + "value": { + "auth_type": "public", + "use_discovery": "true", + "client_id": "us_core_client_demo" + } + }, + { + "name": "patient_ids", + "type": "text", + "title": "Patient IDs", + "description": "Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements", + "value": "us-core-client-tests-patient" + } + ] +} diff --git a/lib/us_core_test_kit.rb b/lib/us_core_test_kit.rb index ad8c86db6..b36c2292f 100644 --- a/lib/us_core_test_kit.rb +++ b/lib/us_core_test_kit.rb @@ -10,3 +10,4 @@ require_relative 'us_core_test_kit/client/generated/v5.0.1/us_core_client_test_suite' require_relative 'us_core_test_kit/client/generated/v6.1.0/us_core_client_test_suite' require_relative 'us_core_test_kit/client/generated/v7.0.0/us_core_client_test_suite' +require_relative 'us_core_test_kit/client/generated/v8.0.0/us_core_client_test_suite' diff --git a/lib/us_core_test_kit/client/generated/v3.1.1/us_core_client_test_suite.rb b/lib/us_core_test_kit/client/generated/v3.1.1/us_core_client_test_suite.rb index ffcef9cb7..f88538da0 100644 --- a/lib/us_core_test_kit/client/generated/v3.1.1/us_core_client_test_suite.rb +++ b/lib/us_core_test_kit/client/generated/v3.1.1/us_core_client_test_suite.rb @@ -290,7 +290,7 @@ class USCoreClientTestSuite < Inferno::TestSuite route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/client/generated/v4.0.0/us_core_client_test_suite.rb b/lib/us_core_test_kit/client/generated/v4.0.0/us_core_client_test_suite.rb index 4253ec27a..b5d33998a 100644 --- a/lib/us_core_test_kit/client/generated/v4.0.0/us_core_client_test_suite.rb +++ b/lib/us_core_test_kit/client/generated/v4.0.0/us_core_client_test_suite.rb @@ -294,7 +294,7 @@ class USCoreClientTestSuite < Inferno::TestSuite route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/client/generated/v5.0.1/us_core_client_test_suite.rb b/lib/us_core_test_kit/client/generated/v5.0.1/us_core_client_test_suite.rb index ddcc214f8..f61c85056 100644 --- a/lib/us_core_test_kit/client/generated/v5.0.1/us_core_client_test_suite.rb +++ b/lib/us_core_test_kit/client/generated/v5.0.1/us_core_client_test_suite.rb @@ -314,7 +314,7 @@ class USCoreClientTestSuite < Inferno::TestSuite route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/client/generated/v6.1.0/us_core_client_test_suite.rb b/lib/us_core_test_kit/client/generated/v6.1.0/us_core_client_test_suite.rb index 9a26bea8a..9332f7b41 100644 --- a/lib/us_core_test_kit/client/generated/v6.1.0/us_core_client_test_suite.rb +++ b/lib/us_core_test_kit/client/generated/v6.1.0/us_core_client_test_suite.rb @@ -332,7 +332,7 @@ class USCoreClientTestSuite < Inferno::TestSuite route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/client/generated/v7.0.0/us_core_client_test_suite.rb b/lib/us_core_test_kit/client/generated/v7.0.0/us_core_client_test_suite.rb index 806f208c8..29a823ed1 100644 --- a/lib/us_core_test_kit/client/generated/v7.0.0/us_core_client_test_suite.rb +++ b/lib/us_core_test_kit/client/generated/v7.0.0/us_core_client_test_suite.rb @@ -319,6 +319,7 @@ class USCoreClientTestSuite < Inferno::TestSuite } ) + suite_option :client_type, title: 'Client Security Type', list_options: [ @@ -340,7 +341,7 @@ class USCoreClientTestSuite < Inferno::TestSuite route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/client/generated/v8.0.0/us_core_client_test_suite.rb b/lib/us_core_test_kit/client/generated/v8.0.0/us_core_client_test_suite.rb index 10319c0e9..9bd9bf074 100644 --- a/lib/us_core_test_kit/client/generated/v8.0.0/us_core_client_test_suite.rb +++ b/lib/us_core_test_kit/client/generated/v8.0.0/us_core_client_test_suite.rb @@ -315,6 +315,15 @@ class USCoreClientTestSuite < Inferno::TestSuite } ] + requirement_sets( + { + identifier: 'hl7.fhir.us.core_8.0.0', + title: 'US Core Implementation Guide', + actor: 'Client' + } + ) + + suite_option :client_type, title: 'Client Security Type', list_options: [ @@ -336,7 +345,7 @@ class USCoreClientTestSuite < Inferno::TestSuite route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/client/generator/templates/suite.rb.erb b/lib/us_core_test_kit/client/generator/templates/suite.rb.erb index 97e8665f3..bfe53a848 100644 --- a/lib/us_core_test_kit/client/generator/templates/suite.rb.erb +++ b/lib/us_core_test_kit/client/generator/templates/suite.rb.erb @@ -69,6 +69,17 @@ module USCoreTestKit actor: 'Client' } ) + + <%- elsif module_name == 'USCoreClientV800'-%> + + requirement_sets( + { + identifier: 'hl7.fhir.us.core_8.0.0', + title: 'US Core Implementation Guide', + actor: 'Client' + } + ) + <%- end -%> suite_option :client_type, @@ -92,7 +103,7 @@ module USCoreTestKit route(:get, SMARTAppLaunch::SMART_DISCOVERY_PATH, lambda { |_env| SMARTAppLaunch::MockSMARTServer.smart_server_metadata(id) }) - route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) + route(:get, SMARTAppLaunch::OIDC_DISCOVERY_PATH, ->(_env) {SMARTAppLaunch::MockSMARTServer.openid_connect_metadata(id) }) route( :get, SMARTAppLaunch::OIDC_JWKS_PATH, diff --git a/lib/us_core_test_kit/metadata.rb b/lib/us_core_test_kit/metadata.rb index ce214abcd..7c4134c20 100644 --- a/lib/us_core_test_kit/metadata.rb +++ b/lib/us_core_test_kit/metadata.rb @@ -70,7 +70,7 @@ class Metadata < Inferno::TestKit of the repository. DESCRIPTION suite_ids [:us_core_v311, :us_core_v400, :us_core_v501, :us_core_v610, :us_core_v700, :us_core_v800, :us_core_client_v311, - :us_core_client_v400, :us_core_client_v501, :us_core_client_v610, :us_core_client_v700] + :us_core_client_v400, :us_core_client_v501, :us_core_client_v610, :us_core_client_v700, :us_core_client_v800] tags ['SMART App Launch', 'US Core'] last_updated LAST_UPDATED version VERSION From d861e2830633cfc02c4da7fe8e3d4b6e6c284b51 Mon Sep 17 00:00:00 2001 From: Yunwei Wang <> Date: Mon, 28 Jul 2025 10:32:19 -0500 Subject: [PATCH 2/2] add client_v800_requirement_coverage.csv --- ...core_client_v800_requirements_coverage.csv | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 lib/us_core_test_kit/requirements/generated/us_core_client_v800_requirements_coverage.csv diff --git a/lib/us_core_test_kit/requirements/generated/us_core_client_v800_requirements_coverage.csv b/lib/us_core_test_kit/requirements/generated/us_core_client_v800_requirements_coverage.csv new file mode 100644 index 000000000..8b53fcc6c --- /dev/null +++ b/lib/us_core_test_kit/requirements/generated/us_core_client_v800_requirements_coverage.csv @@ -0,0 +1,140 @@ +Req Set,ID,URL,Requirement,Conformance,Actors,Conditionality,Not Tested Reason,Not Tested Details,US Core Client v8.0.0 Short ID(s),US Core Client v8.0.0 Full ID(s) +hl7.fhir.us.core_8.0.0,22,https://hl7.org/fhir/us/core/STU8/general-requirements.html#required-bindings-for-coded-elements,[When populating a coded element with a [required binding](http://hl7.org/fhir/R4/terminologies.html#required) to a ValueSet definition] US Core Requestors **SHALL** be capable of processing the code [from the required binding ValueSet],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,28,https://hl7.org/fhir/us/core/STU8/general-requirements.html#extensible-binding-for-coded-elements,US Core Requestors SHALL be capable of processing the code in ['DataElement.code.code' or text in 'DataElement.code.text' for a DataElement.code that has an extensible binding],SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,32,https://hl7.org/fhir/us/core/STU8/general-requirements.html#modifier-elements,Clients SHALL be able to process [elements that are] [Mandatory](https://hl7.org/fhir/us/core/must-support.html) or [Must Support elements](https://hl7.org/fhir/us/core/must-support.html),SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,35,https://hl7.org/fhir/us/core/STU8/general-requirements.html#modifier-elements,receivers SHOULD accept instances that ... contain unexpected data elements  [[definition](http://hl7.org/fhir/R4/conformance-rules.html#isModifier)],SHOULD,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,36,https://hl7.org/fhir/us/core/STU8/general-requirements.html#modifier-elements,receivers SHOULD [NOT] accept instances that ... contain unexpected data elements … when those elements are modifier elements [[definition](http://hl7.org/fhir/R4/conformance-rules.html#isModifier)],SHOULD NOT,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,37,https://hl7.org/fhir/us/core/STU8/general-requirements.html#modifier-elements,"Unless a Client determines they can process [a resource with a modifier] safely, rejection is typically the only safe action if unexpected modifier elements are present.",SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,53,https://hl7.org/fhir/us/core/STU8/general-requirements.html#fhir-restful-search-api-requirements,When searching using the `token` type searchparameter [(how to search by token)](http://hl7.org/fhir/R4/search.html#token) The Client **SHALL** provide at least a code value,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,54,https://hl7.org/fhir/us/core/STU8/general-requirements.html#fhir-restful-search-api-requirements,When searching using the `token` type searchparameter [(how to search by token)](http://hl7.org/fhir/R4/search.html#token) The Client … **MAY** provide both the system and code values.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,56,https://hl7.org/fhir/us/core/STU8/general-requirements.html#fhir-restful-search-api-requirements,When searching using the `reference` type searchparameter [(how to search by reference)](http://hl7.org/fhir/R4/search.html#reference) The Client **SHALL** provide at least an id value,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,57,https://hl7.org/fhir/us/core/STU8/general-requirements.html#fhir-restful-search-api-requirements,When searching using the `reference` type searchparameter [(how to search by reference)](http://hl7.org/fhir/R4/search.html#reference) The Client … **MAY** provide both the Type and id values.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,59,https://hl7.org/fhir/us/core/STU8/general-requirements.html#fhir-restful-search-api-requirements,When searching using the `date` type searchparameter [(how to search by date)](http://hl7.org/fhir/R4/search.html#date) The Client **SHALL** provide values precise to the day for elements of datatype `date`,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,60,https://hl7.org/fhir/us/core/STU8/general-requirements.html#fhir-restful-search-api-requirements,When searching using the `date` type searchparameter [(how to search by date)](http://hl7.org/fhir/R4/search.html#date) The Client **SHALL** provide values precise … to the second + time offset for elements of datatype `dateTime`.,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,76,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support-elements,"For querying and reading US Core Profiles, Must Support on any profile data element **SHALL** be interpreted as follows…: + +US Core Requestors **SHALL** be capable of processing resource instances containing the data elements without generating an error or causing the application to fail.",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,79,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support-elements,"For querying and reading US Core Profiles, Must Support on any profile data element **SHALL** be interpreted as follows…: + +When querying US Core Responders, US Core Requestors **SHALL** interpret missing data elements within resource instances as data not present in the US Core Responder’s system.",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,82,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support-elements,"For querying and reading US Core Profiles, Must Support on any profile data element **SHALL** be interpreted as follows…: + +US Core Requestors **SHALL** be able to process resource instances containing data elements asserting missing information.",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,83,https://hl7.org/fhir/us/core/STU8/must-support.html#additional-uscdi-requirements,Implementors [US Core Requestors] seeking ONC certification [in the ONC IT Health Certification program] **SHALL** interpret Additional USCDI Requirements as Must Support elements as documented above and below;,SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,85,https://hl7.org/fhir/us/core/STU8/must-support.html#additional-uscdi-requirements,Implementors [US Core Requestors] [not] seeking ONC certification [in the ONC IT Health Certification program] **SHALL** interpret Additional USCDI Requirements as … optional.,SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,92,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---primitive-element,[W]hen claiming conformance [to a profile with a must support primitive element] … US Core requestors SHALL be capable of processing the value [of the primitive element],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,98,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---complex-elements,When claiming conformance [to a must support complex element with no must support sub-elements] … US Core Requestors SHALL be capable of processing a value in [the complex element],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,100,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---complex-elements,When claiming conformance [to a must support complex element with one or more must support sub-elements] … US Core Requestors SHALL be capable of processing a values in [each must support sub-element],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,102,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---complex-elements,"Systems [US Core Requestors] can support the other elements [of a complex element, not labeled as a Must Support], but this is not a requirement of US Core",MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,104,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---complex-elements,"The U.S. Core Data for Interoperability (USCDI) may require additional elements, [which is a requirement for certification in the ONC IT Health Certification program, but not a requirement of US Core conformance for US Core Requestors]",MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,106,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---resource-references,"In certain profiles, only specific resource references are labeled as Must Support. + +... + +- US Core Requestors **SHALL** be capable of processing [such an element] with a valid reference to [all listed Must Support profile(s).]",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,108,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---resource-references,"Systems [US Core Requestors] can support other [resource] references [other than those labeled as Must Support], but this is not a requirement of US Core",MAY,Client,,,,"","" +hl7.fhir.us.core_8.0.0,110,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---resource-references,"In specific profiles, only a single resource reference is present on an element labeled Must Support. + +… + +- US Core Requestors **SHALL** be capable of processing [such an element] with a valid reference to [the Must Support Profile.]",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,112,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---choice-of-data-types,"[If a profile has] a Must Support element [with] a choice of datatypes for its content [and some of] the datatypes … are labeled as Must Support[, or a profile has] an Additional USCDI element [with] a choice of datatypes for its content [and some of] the datatypes … are labeled as Additional USCDI + +… When claiming conformance to [such a] profile: + +- US Core Requestors **SHALL** be capable of processing [the Must Support or data type choice]",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,113,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---choice-of-data-types,"[If a profile has] a Must Support element [with] a choice of datatypes for its content [and some of] the datatypes … are labeled as Must Support[, or a profile has] an Additional USCDI element [with] a choice of datatypes for its content [and some of] the datatypes … are labeled as Additional USCDI + +… + +[US Core Requestors] **MAY** support ... processing other [data type] choice elements (such as Observation.effectivePeriod), but this is not a requirement of US Core.",MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,116,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support---choice-of-profile-elements,"There are several instances in this Guide where there is a choice of supporting one or another profile element to meet the Must Support or Additional USCDI requirement. In such cases, … the Client application **SHALL** support all elements.",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,127,https://hl7.org/fhir/us/core/STU8/scopes.html#smart-scopes,US Core Clients should follow the [principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege) and access only the necessary resources.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,172,https://hl7.org/fhir/us/core/STU8/scopes.html#additional-us-core-requirements,US Core requires ... additional metadata [to be available through the Server's [Well-Known Uniform Resource Identifier (URI)](https://hl7.org/fhir/smart-app-launch/STU2/conformance.html#using-well-known)]: ... [in] `scopes_supported` [the] array of scopes a Client may request. The app SHOULD inspect the returned scopes and accommodate the differences from the scopes it asked for and registered.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,194,https://hl7.org/fhir/us/core/STU8/general-guidance.html#language-support,[When Clients request a resource in a specific language] Clients MAY request language/locale using the http [Accept-Language](https://www.ietf.org/rfc/rfc2616.txt) header.,MAY,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,226,https://hl7.org/fhir/us/core/STU8/clinical-notes.html#support-requirements,Systems [Clients] may support other [DiagnosticReport] categories as well.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,232,https://hl7.org/fhir/us/core/STU8/clinical-notes.html#support-requirements,a Client can determine the note and report types supported by a Server by invoking the standard FHIR Value Set Expansion ([$expand](http://hl7.org/fhir/R4/valueset-operation-expand.html)) operation defined in the FHIR R4 specification.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,251,https://hl7.org/fhir/us/core/STU8/medication-list.html#options-for-representing-medication,"The Client application MUST support all methods [for referencing a medication resource: returned bundle, as an external resource, or as a [contained](http://hl7.org/fhir/R4/references.html#contained) resource]",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,264,https://hl7.org/fhir/us/core/STU8/medication-list.html#de-duplication-of-data,"To provide a list of a patient’s medications, it may be necessary to “de-duplicate” them. The de-duplication activity ... SHOULD be provided by the Client.",SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,275,https://hl7.org/fhir/us/core/STU8/screening-and-assessments.html#category-codes,API consumers can query by category when accessing patient information.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,286,https://hl7.org/fhir/us/core/STU8/changes-between-versions.html#no-guarantee-that-resource-ids-are-preserved,"Therefore, Client applications must plan on deduplication methods that rely on something other than a common identifier across FHIR versions.",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,292,https://hl7.org/fhir/us/core/STU8/changes-between-versions.html#expectation-that-fhir-dstu2-data-is-preserved-in-fhir-r5,The FHIR RESTful resource types supported in a DSTU2 implementation SHOULD be supported in a R4 implementation,SHOULD,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,293,https://hl7.org/fhir/us/core/STU8/changes-between-versions.html#expectation-that-fhir-dstu2-data-is-preserved-in-fhir-r7,"The FHIR RESTful resource types supported in a DSTU2 implementation SHOULD be supported in a R4 implementation [with the] exception [of] +MedicationStatement may be deprecated, and the data SHOULD be mapped to MedicationRequest.",SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,294,https://hl7.org/fhir/us/core/STU8/changes-between-versions.html#expectation-that-fhir-dstu2-data-is-preserved-in-fhir-r8,"The FHIR RESTful resource types supported in a DSTU2 implementation SHOULD be supported in a R4 implementation [with the] exception [of] +Care teams as represented by CarePlan in DSTU2 SHOULD be replaced by and the data mapped to CareTeam in R4",SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,299,https://hl7.org/fhir/us/core/STU8/changes-between-versions.html#expectation-that-fhir-dstu2-data-is-preserved-in-fhir-r13,"When updating between versions, Clients SHOULD consider the impact of any changes to data visualization on the usability for the end user and the maintenance of data integrity.",SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,301,https://hl7.org/fhir/us/core/STU8/changes-between-versions.html#authorization-across-versions,Separate authorization is required [between different versions of FHIR],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,314,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-careteam.html#mandatory-and-must-support-data-elements,[C]lient application[s conforming to the US Core CareTeam profile] SHALL support [US Core Practitioner Profile],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,315,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-careteam.html#mandatory-and-must-support-data-elements,[C]lient application[s conforming to the US Core CareTeam profile] SHALL support [US Core PractitionerRole Profile],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,316,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-careteam.html#mandatory-and-must-support-data-elements,[C]lient application[s conforming to the US Core CareTeam profile] SHALL support [US Core RelatedPerson Profile],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,369,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-documentreference.html#mandatory-and-must-support-data-elements,The Client application SHALL support [DocumentReference.attachment.url],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,370,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-documentreference.html#mandatory-and-must-support-data-elements,The Client application SHALL support [DocumentReference.attachment.data],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,376,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-encounter.html#mandatory-and-must-support-data-elements,The Client application SHALL support [ Encounter.reasonCode],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,377,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-encounter.html#mandatory-and-must-support-data-elements,The Client application SHALL support [Encounter.reasonReference],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,380,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-encounter.html#mandatory-and-must-support-data-elements,The Client application SHALL support [Encounter.location.location],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,381,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-encounter.html#mandatory-and-must-support-data-elements,The Client application SHALL support [Encounter.serviceProvider],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,388,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-goal.html#mandatory-and-must-support-data-elements,The Client application SHALL support ... Goal.startDate,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,389,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-goal.html#mandatory-and-must-support-data-elements,The Client application SHALL support ... Goal.target.dueDate,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,403,"https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationdispense.html#mandatory-and-must-support-data-elements, https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements",The Client application SHALL support [using a code in .medicationCodeableConcept to represent medications when supporting the US Core MedicationDispense profile],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,404,"https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationdispense.html#mandatory-and-must-support-data-elements, https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements",The Client application SHALL support [referencing a Medication resource in .medicationReferencet to represent medications when supporting the US Core MedicationDispense profile],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,409,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements,The Client application SHALL support [medicationRequest.reporedtBoolean],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,410,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements,The Client application SHALL support [MedicationRequest.reportedReference],SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,412,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] the certifying Client application SHALL support [MedicationRequest.reasonCode.]",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,413,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] the certifying Client application SHALL support [MedicationRequest.reasonReference.]",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,415,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-medicationrequest.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] Clients SHALL support all target resources in MedicationRequest.reasonReference.",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,476,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-practitioner.html#mandatory-and-must-support-data-elements,The Client application SHALL support both [the PractionerRole profile and the Practioner.address element],SHALL,Client,,,,"","" +hl7.fhir.us.core_8.0.0,483,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-procedure.html#mandatory-and-must-support-data-elements,[For organizations participating in the ONC Health IT Certification program] … Clients SHALL support ... US Core Procedure Profile for communicating the reason or justification for a referral as Additional USCDI Requirements,SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,485,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-procedure.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] The certifying Client application SHALL support both [Procedure.reasonCode and Procedure.reasonReference]",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,487,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-procedure.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] when using Procedure.reasonReference … Clients SHALL support all target resources in Procedure.reasonReference",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,517,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-servicerequest.html#mandatory-and-must-support-data-elements,[For organizations participating in the ONC Health IT Certification program] … Clients SHALL support ... US Core ServiceRequest Profile for communicating the reason or justification for a referral as Additional USCDI Requirements,SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,519,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-servicerequest.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] The certifying Client application SHALL support both [ServiceRequest.reasonCode and ServiceRequest.reasonReference]",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,521,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-servicerequest.html#mandatory-and-must-support-data-elements,"[For organizations participating in the ONC Health IT Certification program,] when using ServiceRequest.reasonReference … Clients SHALL support all target resources in ServiceRequest.reasonReference",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,525,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-specimen.html#mandatory-and-must-support-data-elements,The Client application SHALL support both [ Specimen.identifier and Specimen.accessionIdentifier],SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,526,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-specimen.html#mandatory-and-must-support-data-elements,Clients may request Specimen resources be included with the Observation or DiagnosticReport resource query.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,527,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#should_igs,[Clients] SHOULD Support the Following Implementation Guide [SMART App Launch version 2.0.0 and later](http://hl7.org/fhir/smart-app-launch/history.html),SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,528,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#behavior,[Clients] MAY support the transaction interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,529,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#behavior,[Clients] MAY support the batch interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,530,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#behavior,[Clients] MAY support the search-system interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,531,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#behavior,[Clients] MAY support the history-system interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,544,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Server.html#behavior,[Server] MAY support the transaction interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,545,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Server.html#behavior,[Server] MAY support the batch interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,546,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Server.html#behavior,[Server] MAY support the search-system interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,547,https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Server.html#behavior,[Server] MAY support the history-system interaction,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,551,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems SHALL establish a risk analysis and management regime that conforms with HIPAA security regulatory requirements,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,553,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,US Federal systems SHOULD conform with the risk management and mitigation requirements defined in NIST 800 series documents.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,555,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,US Federal systems … SHOULD include security category assignment following NIST 800-60 vol. 2 Appendix D.14.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,557,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,The coordination of risk management and the related security and privacy controls … SHOULD be defined in the Business Associate Agreement when available.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,559,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems SHALL reference a single time source to establish a common time base for security auditing and clinical data records among computing systems.,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,561,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,The selected time service SHOULD be documented in the Business Associate Agreement when available.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,563,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems SHALL keep audit logs of the various transactions.,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,565,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems SHALL use TLS version 1.2 or higher for all transmissions not taking place over a secure network connection.,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,567,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,US Federal systems SHOULD conform with FIPS PUB 140-2.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,569,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems SHALL conform to [FHIR Communications Security](http://hl7.org/fhir/R4/security.html#http) requirements.,SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,571,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,"For Authentication and Authorization, Systems SHALL support any [SMART App Launch version](http://hl7.org/fhir/smart-app-launch/history.html) for Client <-> Server interactions.",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,573,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,"Systems SHALL implement consent requirements per their state, local, and institutional policies.",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,575,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,The Business Associate Agreements SHOULD document systems’ mutual consent requirements.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,577,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems SHOULD provide Provenance statements using the [US Core Provenance Profile](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-provenance.html) resource and associated requirements.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,579,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems MAY implement the [FHIR Digital Signatures](http://hl7.org/fhir/R4/security.html#digital%20signatures),MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,581,https://hl7.org/fhir/us/core/STU8/security.html#patient-privacy-and-security,Systems MAY protect the confidentiality of data at rest via encryption and associated access controls.,MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,582,https://www.hl7.org/fhir/us/core/STU8/general-requirements.html#current-binding-for-coded-elements,"The [additional] current binding [[FHIR R5 link](https://hl7.org/fhir/R5/terminologies.html#binding)] requires newly recorded, non-legacy data to be drawn from the [bound] value set.",SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,800,https://hl7.org/fhir/us/core/STU8/must-support.html#must-support-elements,"For querying and reading US Core Profiles, Must Support on any profile data element **SHALL** be interpreted as follows…: + +[The US Core Requesters processing of the resource instances] may result in a determination not to use the resource if the resource content does not meet business requirements.",MAY,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,815,https://hl7.org/fhir/us/core/STU8/general-guidance.html#Client-best-practices-for-search,"When the Server supports [ the _include search parameter], Clients **SHOULD** use the _include search parameter to retrieve referenced content instead of searching for a resource and then performing a separate search for other references (for example, Patient, Encounter, and Location) in the result set.",SHOULD,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,816,https://hl7.org/fhir/us/core/STU8/general-guidance.html#Client-best-practices-for-search,"If the Server does not support the _include search parameter, Clients **SHOULD** consolidate duplicate searches before searching for referenced resources in the result set",SHOULD,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,817,https://hl7.org/fhir/us/core/STU8/general-guidance.html#Client-best-practices-for-search,"The [HTTP Cache-Control](https://httpwg.org/specs/rfc9111.html) response header stores a response associated with a request and reuses the stored response for subsequent requests. If Cache-Control is present in the Server response headers, the Clients **SHOULD NOT** search the same data within the time stated in Cache-Control headers.",SHOULD NOT,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,829,"https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#behavior, https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Server.html#behavior","US Core SearchParameters referenced in [the US Core Client] CapabilityStatement that are derived from standard FHIR SearchParameters are only defined to document ... Client expectations. They specify additional expectations for the following SearchParameter elements:B7 + +- multipleAnd +- multipleOr +- comparator +- modifier +- chain + +They **SHALL NOT** be interpreted as search parameters for search.",SHALL NOT,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,830,"https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Client.html#behavior, https://hl7.org/fhir/us/core/STU8/CapabilityStatement-us-core-Server.html#behavior",Clients **SHOULD** use the standard FHIR SearchParameters.,SHOULD,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,849,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-observation-screening-assessment.html#mandatory-and-must-support-data-elements,"[For the US Core Observation Screening Assessment Profile,] the Client system ... SHALL support [both] Reference(US Core Observation Screening Assessment Profile) [and] Reference(US Core QuestionnaireResponse Profile) for Observation.derivedFrom",SHALL,Client,false,,,"","" +hl7.fhir.us.core_8.0.0,853,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-patient.html#mandatory-and-must-support-data-elements,The certifying Client application **SHALL** support the [[US Core Interpreter Needed Extension](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-interpreter-needed.html)] on [the [US Core Patient Profile](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-patient.html)] .,SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,854,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-patient.html#mandatory-and-must-support-data-elements,The certifying Client application **SHALL** support the [[US Core Interpreter Needed Extension](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-interpreter-needed.html)] on [the [US Core Encounter Profile](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-encounter.html)].,SHALL,Client,true,,,"","" +hl7.fhir.us.core_8.0.0,869,https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-simple-observation.html#mandatory-and-must-support-data-elements,'Observation.performer' target profiles [US Core Practitioner Profile](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-practitioner.html) and [US Core Patient Profile](https://hl7.org/fhir/us/core/STU8/StructureDefinition-us-core-patient.html) are labeled Must Support.... Clients SHALL support both.,SHALL,Client,false,,,"",""